rm: impossible de supprimer le répertoire /: autorisation refusée

17

J'ai créé un répertoire appelé "shadi" et défini cette autorisation pour cela

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

Dans cette situation, j'ai des autorisations "autres", mais pourquoi ne puis-je pas le supprimer?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied
Sinoosh
la source

Réponses:

25

Ici, le problème est que vous n'avez pas l'autorisation "w" sur le /homerépertoire. Lors de la suppression d'un fichier, notez que vous n'écrivez pas dans ce fichier mais que vous modifiez le contenu du répertoire qui contient le fichier.

capture d'écran du terminal de "ls -ld / home"

Si je suis dans un répertoire avec l'autorisation "w", je peux supprimer n'importe lequel de ses fichiers sans me soucier de l'autorisation de fichier elle-même. Notez que mon répertoire actuel est celui /home/rohithqui a l'autorisation "w" et que je peux donc supprimer n'importe lequel de ses fichiers indépendamment des autorisations de fichier.

capture d'écran du terminal de suppression / home / rohith / shadi

Si le même fichier est créé dans le répertoire '/ home' qui n'a pas de permission "w" j'obtiens la même sortie que la vôtre! :)

capture d'écran du terminal pour essayer de supprimer / home / shadi

rohith
la source
8

Cela se produit parce que vous ne possédez pas le répertoire, il appartient à «root» et au groupe «root». Donc, pour le supprimer, vous pouvez soit changer la propriété, puis la supprimer (ici, vous élevez vos droits et devenez «root» pour en devenir propriétaire):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

Ou vous sautez la prise de possession et faites un sudo rmpour élever vos droits et devenez «root» pour la suppression:

sudo rm -r ./shadi
Videonauth
la source
cela signifie que seuls les propriétaires peuvent supprimer des fichiers?
Sinoosh
Oui, ou vous devez élever vos droits avec la sudocommande. cela vous demandera alors votre mot de passe et vous deviendrez «root» pour la commande suivante particulière.
Videonauth
faites-vous maintenant si "shadi" était un fichier, je peux le supprimer avec l'utilisateur "sinoosh" .il ne nécessite pas "sudo" ce n'est pas une scène pour moi pourquoi il ne fonctionne pas avec le répertoire
Sinoosh
6

Essaye ça:

sudo rm -r ./shadi

Les autorisations montrent la racine du propriétaire et la racine du groupe, vous devez donc utiliser sudo.

Bruni
la source
1
Oui, cette commande est ok, mais mon problème est pourquoi rm ne fonctionne pas avec ces autorisations J'ai des autorisations complètes pour ce répertoire dans un autre domaine
Sinoosh
"J'ai les autorisations complètes pour ce répertoire" Non, vous n'en avez pas. "autre domaine" shadi n'est pas "autres".
Rinzwind
mais "sinoosh" appartient à d'autres et il exécute "rm -r shadi"
Sinoosh
0

Ce sont des comptes différents.

Comment vous attendriez-vous à la sécurité de votre compte si tout le monde avait la permission de supprimer votre répertoire personnel?

Vous n'êtes pas wautorisé à supprimer le répertoire personnel de quelqu'un d'autre par défaut, sauf s'il le chmod +wfait.

Voici les différentes autorisations, et un exemple ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | u | g | o |
+ - + - + - + - +
| r | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
Il va comme ceci: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, donc 750, à savoir un système d'autorisation d'idéal. Le propriétaire ( udans ce cas) peut lire, écrire et exécuter le fichier, le groupe du propriétaire ( gdans ce cas) peut lire et exécuter, et toute autre personne ( odans ce cas) ne peut rien faire. C'est le légendaire:
u: utilisateur actuel (utilisateur)
g: groupes d'utilisateurs actuels (Groupes)
o: pas les groupes d'utilisateurs actuels (autres)
r: autorisation de lecture (lecture)
w: autorisation d'écriture (écriture)
x: autorisation d'exécution (X-ecute)
.

EKons
la source