touch
を使用してファイルを作成するたびに、権限が-rw-r--r-に設定されているようです。
touch
を使用してアクセス許可を構成する方法はありますか、または別のコマンドを使用してこれを実行する必要がありますか?
umask
を変更して、(ほとんどの実装で)より多くの読み取り/書き込み特権を許可することができますが、実行可能ではありません。通常、要求される権限は0666
です。
umask
が022
の場合、touch
が0644
ファイルを作成することがわかります。
興味深いことに、 [〜#〜] posix [〜#〜] は、creat
の観点からこの動作を説明しています。
ファイルが存在しない場合:
creat() 関数は、次の引数で呼び出されます。
Fileオペランドは、パス引数として使用されます。
S_IRUSR
、S_IWUSR
、-のビット単位の包含[〜#〜]または[〜#〜]の値S_IRGRP
、S_IWGRP
、S_IROTH
、およびS_IWOTH
がモード引数として使用されます。
creat
、次にopen
へのリンクをたどって、umask
に言及し、open
(およびcreat
)は、umask
がtouch
に影響を与えるはずであることを確認します。
umask
がtouch
コマンドのみに影響するようにするには、サブシェルを使用します。
(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask
(いずれの場合でも、ファイルが事前に存在していた場合、touch
はその権限を変更せず、タイムスタンプを更新するだけです)。
umask
を操作できます。通常、これは022
に設定されます。つまり、ユーザーがファイルを作成すると、0644
の権限が付与され、必要に応じてumask
を操作できます。