ユーザーがディレクトリを削除するのを防ぐ方法は?

ユーザーがディレクトリを削除するのを防ぐ方法は?

"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

ここで重要なヒントは、ディレクトリ所有者がディレクトリを削除したいユーザーとは異なることです。

関連情報