Pourquoi ne puis-je pas supprimer un fichier sur lequel j'ai des autorisations d'écriture de groupe?


26

J'ai un fichier avec les autorisations suivantes:

root:dataet chmoddéfinissez-le sur 775.

Mon utilisateur normal, appelons-le boby, est dans le datagroupe.

Pourquoi ne puis-je pas supprimer le fichier avec l'utilisateur boby?

 rwxrwxr-x 18 données racine 4096 2011-12-30 22:02 stockage
 mon utilisateur est dans les données du groupe mais ne peut pas écrire dans le stockage

Réponses:


32

Parce qu'en supprimant un fichier, vous ne modifiez pas seulement le fichier mais vous modifiez également son répertoire.

Donc, si votre fichier est:

rwxrwxr-x

Vous pourriez faire:

cp /dev/null <filename>

Mais si vos autorisations de répertoire sont:

rwxr-xr-x  root  data  <directory name>

Ensuite, le système vous empêchera de supprimer le fichier.


J'ai drwxrwxr-x sur le répertoire, je pense que cela a quelque chose à voir avec le d en face
danidacar

2
@ user56301 d indique simplement que ce fichier est un répertoire. Quelle est la propriété de l'annuaire?
Karlson

drwxrwxr-x 18 données racine
danidacar

Essayez d'exécuter en tant qu'utilisateur bobyce qui suit:cd <directory> ; touch test_file ; rm test_file
Karlson

@ user56301 pouvez-vous créer un fichier dans ce répertoire? si vous ne le pouvez pas, vous ne pouvez certainement pas y supprimer un fichier.
Rich Homolka

12

La suppression de fichiers est basée sur les autorisations de répertoire, et non sur les autorisations de fichier (*).

Avez-vous des autorisations d'écriture sur le répertoire qui contient le fichier?

(*) Attention, vous pouvez avoir un répertoire dans lequel vous imposez que seul le propriétaire du fichier puisse le supprimer. Ceci est utile pour les répertoires temporaires.


Jetez également un œil ici: superuser.com/questions/784952/… où la même chose est discutée.
Meetai.com

1

Si le répertoire contenant ne permet pas à l'utilisateur bobyou au datagroupe d'y écrire, cela expliquerait ce comportement.


2
Donc, le chemin entier a besoin d'une autorisation de groupe? Ça fonctionne comme ça.
danidacar

1
@user: Pas le chemin complet - juste le répertoire parent immédiat du fichier. Vous modifiez uniquement le contenu du répertoire. Les parents supérieurs n'ont pas d'importance du tout .
grawity

Je mets à jour les réponses
danidacar

1
Ce n'est pas tout à fait vrai. Vous avez seulement besoin d'écrire des perms sur le répertoire contenant. Les perms peuvent être n'importe quel utilisateur, groupe ou autre, il n'est pas nécessaire que ce soit des perms de groupe qui vous le permettent.
Rich Homolka

@Rich: AFAIK, un seul ensemble est vérifié. Si vous êtes le propriétaire, le système ne vérifiera que les autorisations «propriétaire», pas «groupe» ni «autres». Si vous êtes dans le groupe, le système ne vérifiera pas les autorisations des «autres». ( touch foo; chmod 6 foo; ls -l foo; cat foo)
grawity

1

J'ai essayé la même chose et j'ai rencontré le même problème.

Démarrage d'une nouvelle session de terminal le problème. Cela peut être réalisé par:

  1. Déconnexion et reconnexion
  2. Aller à l'un des 6 ttys (Ctrl + Alt + F1-6) (Remarque: Ctrl + Alt + F7 est votre session GUI)
  3. utiliser su bobypour démarrer une nouvelle session pour l'utilisateur boby.

À votre santé!


Il mentionne qu'il est déjà connecté en tant que boby
Canadian Luke REINSTATE MONICA

Il doit se connecter à nouveau car boby- l'ancienne session semble obsolète et ne reflète pas les changements d'association de groupe.
Here Be Wolves

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.