Denoのパーミッションシステム
概要
Denoではファイルシステムやネットワーク、環境変数などに関する操作は、明示的に権限を与えない限り、実行することができません
パーミッションフラグ
--allow-read (-R)
ファイルシステムへの読み込みを許可します
--allow-write (-W)
ファイルシステムへの書き込みを許可します
--allow-net (-N)
ネットワークアクセスを許可します ( Deno.connect
/ Deno.listen
/ fetch()
など)
--allow-env (-E)
環境変数の参照を許可します
--allow-sys (-S)
システム情報を参照するAPIの実行を許可します
--allow-run
LD_PRELOADなどの
LD_
から始まる環境変数または
DYLD_
から始まる環境変数が設定されている場合は、
--allow-all
の指定が必要です (
Deno v2から)
セキュリティのため、
--allow-run
に指定された実行可能ファイルは
Denoの起動時に絶対パス形式で解釈された上で
--deny-write
に自動で設定されます (
Deno v2から)
--allow-ffi
--allow-all (-A)
権限を必要とするあらゆる機能の使用を許可します
--deny-*
各種 --allow-*
フラグと対になるフラグで、特定の権限を拒否することができます (例: --deny-read
, --deny-write
)
--deny-*
フラグは --allow-*
フラグよりも優先度が高く設定されています
shell# 1. 全ての処理を許可します (--allow-all)
# 2. ただし、ファイルシステムへの書き込みは拒否します (--deny-write)
$ deno run --allow-all --deny-write main.js