Why can't I delete a file where I have group write permissions on?

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-x

You 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.

8

File 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.

3

If the containing directory does not permit the user boby or the data group to write to it, then that would explain this behavior.

8

I tried the same thing, and ran into the same problem.

Starting a new terminal session the problem. This can be achieved by:

  1. Logging out and logging back in
  2. Going to one of the 6 ttys (Ctrl+Alt+F1-6) (Note: Ctrl+Alt+F7 is your GUI session)
  3. using su boby to start a new session for user boby.

Cheers!

2

I 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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like