All we need is an easy explanation of the problem, so here it is.
I made a directory called “shadi” and set this permission for it
[email protected]:/home$ ls -ld shadi drwxr-xrwx 2 root root 4096 Jul 1 01:58 shadi
In this situation I have “others” permissions, but why can I not delete it?
[email protected]:/home$ rm -r shadi/ rm: cannot remove ‘shadi/’: Permission denied
How to solve :
I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.
Here the problem is you do not have “w” permission on the
While deleting a file note that you are not writing to that file but you are changing the contents of the directory that contains the file, so having “w” permission on the directory is a must if you want to delete any file from the directory.
If I am in a directory with “w” permission, I can delete any of its files without being worried about the file permission itself.
Note that my present directory is
/home/rohith which has “w” permission and hence I can delete any of its files irrespective of the file permissions.
If the same file is created in the ‘/home’ directory which has no “w” permission I get the same output as yours ! 🙂
This happens because you don’t own the directory, it is owned by ‘root’ and the ‘root’ group. So to delete it you can either changing the ownership and then delete it (here you elevate your rights and become ‘root’ for taking the ownership):
sudo chown $USER:$USER ./shadi rm -r ./shadi
Or you skip taking the ownership and make a
sudo rm to elevate your rights and become ‘root’ for the deletion:
sudo rm -r ./shadi
sudo rm -r ./shadi
The permissions show owner root and group root, so you have to use sudo.
It’s different accounts.
How would you expect safety from your account, if everyone had the permission to delete your home directory?
You do not have the
w permission to delete someone other’s home directory by default, except if they
chmod +w it.
Here are the different permissions, and an example (
+-+-+-+-+ |+|u|g|o| +-+-+-+-+ |r|1|1|1| +-+-+-+-+ |w|2|2|2| +-+-+-+-+ |x|4|4|4| +-+-+-+-+ |*|7|5|0| +-+-+-+-+
It goes like this:
1 + 2 + 4 = 7,
1 + 4 = 5,
0 = 0, so
750, i.e. an ideal permission system. The owner (
u in this case) can read, write and execute the file, the owner’s group (
g in this case) can read and execute, and anyone other (
o in this case) cannot do anything. This is the legendary:
u: current user (User) g: current user's groups (Groups) o: not current user's groups (Others) r: read permission (Read) w: write permission (Write) x: execute permission (X-ecute)
you must get root access first by:
then force deleting the file
rm -rf ./shadi
Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂