"chattr + i DIRNAME"を試してみました。ユーザーがディレクトリを削除するのを防ぐにはどうすればよいですか?
root@HOST ~] mkdir test
[root@HOST ~] chattr +i test
[root@HOST ~] cd test
[root@HOST ~/test] touch sth
touch: cannot touch `sth': Permission denied
[root@HOST ~/test] cd ..
[root@HOST ~] chattr -i test
[root@HOST ~] cd test
[root@HOST ~/test] touch sth
[root@HOST ~/test]
更新:ディレクトリの削除のみが重要であるため、ディレクトリ内のファイルを削除する必要があります。
答え1
「.protected」ファイルを作成し、rootとして実行します。
chattr +i .protected
これにより、.protected
このディレクトリを除くすべてのファイルを削除できるため、他のユーザーはディレクトリを削除できません。
答え2
chattr +a
仕事をしなければなりません。その中にファイルを作成できますが、削除することはできません。
答え3
それでは、単純なchown / chmodの問題は何ですか? :
cd /tmp
mkdir question
sudo chown root:root question
[sudo] password for user:
chmod 777 ./question
touch sth
rm sth
cd ..
rm question -rf
rm: cannot remove `question': Operation not permitted
question
まあ、何が問題なのか教えてください。すべてのユーザーは、許可によりディレクトリ内のすべてのファイルにアクセスできます777
。楽しむ
- 新しいグループの作成
groupadd question
mkdir question
chown root:question ./question
chmod 770 ./question
- ファイルへのアクセス権が必要なユーザーを新しいグループに追加します。
usermod -G group user
ここで重要なヒントは、ディレクトリ所有者がディレクトリを削除したいユーザーとは異なることです。