I have a file with the following permissions:
root:data, and chmod set to 775.
My normal user, let's call him boby, is in the data group.
Why can't I delete the file with the user boby?
rwxrwxr-x 18 root data 4096 2011-12-30 22:02 storage my user is in the group data but can't write into storage
6 Answers
Because by deleting a file, you are not just modifying the file but also modifying its directory.
So if your file is:
rwxrwxr-xYou would be able to do:
cp /dev/null <filename>But if your directory permissions are:
rwxr-xr-x root data <directory name>Then system will prevent you removing the file.
8File deletion is based on directory perms, not file perms (*).
Do you have write permissions on the directory that contains the file?
(*) Caveat, you can have a directory where you enforce that only the owner of the file can delete it. This is useful for temp dirs.
3If the containing directory does not permit the user boby or the data group to write to it, then that would explain this behavior.
I tried the same thing, and ran into the same problem.
Starting a new terminal session the problem. This can be achieved by:
- Logging out and logging back in
- Going to one of the 6 ttys (Ctrl+Alt+F1-6) (Note: Ctrl+Alt+F7 is your GUI session)
- using
su bobyto start a new session for userboby.
Cheers!
2I bet the file you're trying to delete is in /tmp.
See Linux - group member cannot delete file with rw permission
/tmp usually has the "sticky" aka "restricted deletion" mode set (o+t). With this mode set, only the file's owner can move or delete files in that directory regardless of any permissions.
the file you want to have delete permissions too, after a chmod 775 or 777, place it under a directory which has been chmod 775 or 777 too.
e.g sudo touch /root/comments.db sudo chmod 777 /root/comments.db and then as a non sudoer : rm /root/comments.db # doesnt work
However, mkdir -p /root/comments/comments.db sudo touch /root/comments/comments.db sudo chmod 777 /root/comments/comments.db sudo chmod 7775 /root/comments and then as a non sudoer : rm /root/comments/comments.db # works