How to prevent users from deleting a directory?
Create a file ".protected" and do as root
chattr +i .protected
You can then delete all files except .protected
within this directory,
thus the directory can't be deleted by any other user.
chattr +a
should do the job. You can create files inside but you won't be able to delete them.
So what is wrong with a simple 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
OK, let me tell you what is wrong with this: every user has all access to every file in the question
directory due to the 777
permissions. It is better to
- create a new group
groupadd question
mkdir question
chown root:question ./question
chmod 770 ./question
- add the users that must have access to the files to the new group:
usermod -G group user
The important trick here is that the directory has a different owner than any of the users that will try to delete it.