web-dev-qa-db-fra.com

Linux - un membre du groupe ne peut pas supprimer de fichier avec l'autorisation rw

Ci-dessous, un fichier, /tmp/testfile, appartenant à tilisateur1 avec le groupe modifié en roue, qui inclut également tilisateur2. Le fichier a l'autorisation rw pour le groupe. Donc, aucun membre du groupe ne devrait-il pouvoir le supprimer? L'exemple de sortie ci-dessous montre que tilisateur2 ne peut pas supprimer le fichier. Pourquoi?

[user2@files ~]$ ls -l /tmp/testfile
-rw-rw-r-- 1 user1 wheel 0 Jul 18 18:54 /tmp/testfile
[user2@files ~]$ groups
user2 wheel
[user2@files ~]$  rm /tmp/testfile
rm: cannot remove `/tmp/testfile': Operation not permitted
15
user347765

Tout d'abord, vous regardez les mauvaises autorisations. Lorsque vous déplacez/renommez/supprimez un fichier, vous ne modifiez que le répertoire parent - les autorisations propres au fichier ne sont pas vérifiées. Vous ne supprimez qu'une entrée de la liste de fichiers du répertoire. Par conséquent, vous devez vérifier les autorisations du répertoire parent (dans ce cas, /tmp).

$ ls -ld /tmp
drwxrwxrwt 15 root root 460 Jul 19 15:18 /tmp/

Deuxièmement, /tmp est spécial. Sur pratiquement tous les systèmes, n'importe qui peut y écrire (ugo=rwx), donc, à première vue, il semblerait que n'importe qui puisse renommer ou supprimer n'importe quel fichier. Cela faciliterait bien entendu la création de problèmes pour les autres utilisateurs, donc /tmp a toujours le mode "collant", également appelé "suppression restreinte" (o+t). Lorsque ce mode est défini, seul le propriétaire du fichier peut déplacer ou supprimer des fichiers dans ce répertoire, quelles que soient les autorisations.

(Sur GNU coreutils, la page de manuel chmod(1) contient une section relative à "indicateur de suppression restreinte ou" post-it " .)

29
grawity