使用すると、デフォルトの権限で764の権限のみがmkdir -pm 764 a/b/c
取得されます。なぜですか?すべてのディレクトリに764権限が付与されていないのはなぜですか?c
a
b
答え1
このmkdir
ユーティリティはディレクトリを作成します。この機能を使用すると、-m
ディレクトリが作成され、chmod
指定された権限でそのディレクトリで効果的に実行されます(ただし、2つのステップでは実行されませんが、場合によっては重要な場合があります)。
を使用すると、-p
まだ存在しない中間ディレクトリが作成されます。与えられたパターンは-m
まだパス名の姓にのみ適用されます。これは作成したいディレクトリです(中間ディレクトリは、指定されたパターンを使用してディレクトリを作成できるように作成されます)。
これPOSIX規格mkdir
(S_IWUSR|S_IXUSR|~filemask)&0777
各中間ディレクトリは、シェルのumask値パターンを使用して作成する必要があるとします。filemask
「アプリケーションの使用」セクションには、次のように記載されています。
[...]によって生成された中間パス名コンポーネントの場合、ファイルモードの作成マスクに関係なく、常にサブディレクトリを作成できるようにモードがデフォルト
mkdir
で変更されますu+ wx
。中間ディレクトリに別の最終権限が必要な場合は、後でを使用して変更できますchmod
。
これは、ユーザー書き込みまたは実行権限のないディレクトリを作成できるように中間ディレクトリのモードが設定されていることを意味します。中間ディレクトリに実行および/または書き込み権限も付与されていない場合、ディレクトリパスの最後の部分は作成されません。
状況に応じて活用してみてください
mkdir -p -m 764 a/b/c
chmod 764 a/b
chmod 764 a
以前にディレクトリが存在しなかったと確信している場合は、次のようにします。
mkdir -p -m 764 a/b/c
chmod -R 764 a