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
danidacar
la source

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.

Karlson
la source
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.

Rich Homolka
la source
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.

Andrew Lambert
la source
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é!

Here Be Wolves
la source
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