"mkdir -pm 764 a/b/c"を使用して作成された中間フォルダの権限について

"mkdir -pm 764 a/b/c"を使用して作成された中間フォルダの権限について

使用すると、デフォルトの権限で764の権限のみがmkdir -pm 764 a/b/c 取得されます。なぜですか?すべてのディレクトリに764権限が付与されていないのはなぜですか?cab

答え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

関連情報