web-dev-qa-db-ja.com

Linuxディレクトリのアクセス許可は、書き込みではなく、削除ではあります

グループがファイルやサブディレクトリの読み取りと書き込みはできるが、何も削除できないようにディレクトリのアクセス許可を設定することは可能ですか?

57
CodeLizard

ディレクトリにスティッキービットを設定するだけで十分な場合があります。ユーザーは自分が所有するファイルを削除できますが、他のユーザーのファイルは削除できません。これでユースケースに十分な場合があります。ほとんどのシステムでは、/ tmpはこの方法でセットアップされます(/ tmpは1777に設定されます)

chmod 1775 /制御

ただし、さらに制御したい場合は、問題のファイルシステムでACLを有効にする必要があります。

/ etc/fstabで、フラグにaclを追加します。

/dev/root        /                       ext3    defaults,acl       1 1

その後、setfacl/getfaclを使用して、aclレベルの権限を制御および表示できます。

例:(一度作成されたファイルは読み取り専用ですが、所有者は削除できますが、他のユーザーは削除できません。)

setfacl --set u::rwxs,g::rwx /controlled
setfacl -d --set u::r-x,g::r-x,o::- /controlled

ディレクトリで作成されたすべてのファイルで使用されるデフォルトのACLリストを設定できます。

他の人が述べたように、あなたが望むものを正確に指定するように注意してください。 「書き込み」と言いますが、ユーザーは自分のファイルを上書きできますか?既存のコンテンツを変更したり、追加したりできますか?一度書いたら、それは読み取り専用ですか?おそらく、コメントで詳細を指定できます。

最後に、selinuxとgrsecurityはさらに多くの制御を提供しますが、それは他のワームの缶です。セットアップには非常に複雑な場合があります。

48
jmanning2k

さて、このディレクトリではr-xになります。

そして、その中のファイルにはrw-があります。

これは、ファイルのアクセス許可が書き込みを許可している場合にファイルを書き込むことができますが、ディレクトリのアクセス許可が書き込みを許可している場合にのみ削除できるためです。

15
alamar

可能かどうかにかかわらず、0バイトのファイルで上書きすることは、特定のコンテキストでファイルを削除することと同等ではないことを確認してください。

2
bacar