コマンドの実行中にtouch file
エラーが発生しました。
touch: cannot touch 'file': permission denied
ファイルを作成したいディレクトリに対して777権限を持っていても、特定のユーザーとしてファイルを作成することはできませんが、他のユーザーはそのディレクトリからファイルを作成できます。
根本原因を見つけようとしていますが、strace
strace出力を理解できません。私が考えると、strace出力に関連する行は次のとおりです。
open("file", O_WRONGLY|O_CREATE|O_NOCTTY|O_NONBLOCK, 0666) = -1 EACESS (Permission denied)
また、特定の権限を持つファイルを生成しようとしましたが、権限エラーが発生しました。試したコマンドは次のとおりです。
install -b -m 511 /dev/null file
ベストアンサー1
ファイルシステムアクセス制御リストによってオーバーライドできます。たぶんLinux ACLですか?を使用してこれを決定できますlsfacl
。
現在のACLのインポート- getfaclを使用して、すべてのファイルまたはディレクトリの権限を確認できます。以下の例をご覧ください。
# getfacl dir/
file: dir
owner: root
group: root
user::rwx
group::---
other::---
ACLを使用した権限の設定- アクセス制御リストから継承したディレクトリに対して「モード」0777を設定できます。setfacl -d -m o::rwx /directory