Linux – cannot remove owned file with 777 permissions

95,358

Solution 1

To remove one file you need write permission on the directory that contains¹ this file.

Here the permissions are dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 . So nobody (other than root) can remove files inside this directory. The owner must use chmod first.


1. There are pretty good reasons for that. By ‘removing’ a file with rm, you are in fact trying to unlink it from the directory (hardlinked copies will not be deleted).

Solution 2

Another possible question is attribute

lsattr file

This command will show you attribute of the file and a file with 'i' attribute cannot be modified (and be deleted)

so check your file's attribute and remove 'i' attribute if the attribute is been set

chattr -i file

Solution 3

I had the same problem, and chmod alone didn't do the trick. I first had to change the owner (user and group) of the files I wanted to remove.

sudo chown -hR root:admin dir_to_delete

Explanation:

  • sudo: make sure you have the proper rights
  • chown: Linux command to change owner of a file
  • -hR: change owner of directory and all subdirectories. I found it here.
  • root: name of new user
  • admin: name of new group

I had already changed the modifiers to 777; I don't know if that was necessary or not.

Share:
95,358

Related videos on Youtube

RaYell
Author by

RaYell

Updated on September 18, 2022

Comments

  • RaYell
    RaYell over 1 year

    I've couple of files that I cannot remove using rf -Rf command. I'm the owner of those file and the group assigned to those files is also a group my user is in. What's even weirder is that I can edit their content and I can change the permissions for them, but I can't move or delete them.

    ls -al
    total 12
    dr-xr-xr-x 3 rayell pg1083760 4096 2010-10-10 10:00 .
    drwxr-xr-x 3 rayell pg1083760 4096 2011-09-02 04:33 ..
    -rwxrwxrwx 1 rayell pg1083760    0 2011-09-02 06:38 default.settings.php
    drwxrwxrwx 2 rayell pg1083760 4096 2011-09-02 04:33 files
    -rwxrwxrwx 1 rayell pg1083760    0 2011-09-02 06:38 settings.php
    
    
    rm -Rf *
    rm: cannot remove `default.settings.php': Permission denied
    rm: cannot remove directory `files': Permission denied
    rm: cannot remove `settings.php': Permission denied
    

    Can anyone tell me what is happening?

    • Sardathrion - against SE abuse
      Sardathrion - against SE abuse over 12 years
      In general, consider using rm -rf DIRECTORY_NAME and not "*". It will save you from that one time when you will think yourself in directory /some/where/safe but are instead in /home
    • RaYell
      RaYell over 12 years
      Actually I did try that, it was just those 3 files that I couldn't remove so I have simplified to procedure a bit for this post's purpose.
  • Toby Speight
    Toby Speight about 8 years
    Please don't condone making directories writable by everybody. That's not good advice.
  • Toby Speight
    Toby Speight about 8 years
    The question shows that it's the directory permissions that don't allow writing. No need to look further.
  • André Figueira
    André Figueira over 7 years
    +1 - Agree, do not follow this advice, it's amazing, how this is plastered all over the internet... The amount of insecurity, caused by people advocating this is incredible...
  • sgnsajgon
    sgnsajgon almost 7 years
    Permissions of files within directory are irrelevant, only write permission on directory itself matters. Probably before chown you had been neither owner of directory nor member of directory owning group.
  • Marc
    Marc over 3 years
    Ok, but this was the answer I needed! Thank you so much!