Warum kann ich eine Datei, für die ich Gruppenschreibberechtigungen habe, nicht löschen?

26

Ich habe eine Datei mit folgenden Berechtigungen:

root:dataund chmodauf 775 gesetzt.

Mein normaler Benutzer, nennen wir ihn Boby, ist in der dataGruppe.

Warum kann ich die Datei mit dem Benutzer boby nicht löschen?

 rwxrwxr-x 18 Stammdaten 4096 30.12.2011 22:02 Speicherung
 Mein Benutzer befindet sich in den Gruppendaten, kann jedoch nicht in den Speicher schreiben
danidacar
quelle

Antworten:

32

Denn durch das Löschen einer Datei ändern Sie nicht nur die Datei, sondern auch das Verzeichnis.

Also, wenn Ihre Datei ist:

rwxrwxr-x

Sie könnten:

cp /dev/null <filename>

Aber wenn Ihre Verzeichnisberechtigungen sind:

rwxr-xr-x  root  data  <directory name>

Das System verhindert dann das Entfernen der Datei.

Karlson
quelle
Ich habe drwxrwxr-x im Verzeichnis, ich denke, es hat etwas mit dem d vor
danidacar
2
@ user56301 d gibt nur an, dass es sich bei dieser Datei um ein Verzeichnis handelt. Was ist das Eigentum des Verzeichnisses?
Karlson
drwxrwxr-x 18 Stammdaten
Danidacar
Versuchen Sie als Benutzer bobyFolgendes cd <directory> ; touch test_file ; rm test_file
auszuführen
@ user56301 können Sie eine Datei in diesem Verzeichnis erstellen? Wenn Sie dies nicht können, können Sie dort definitiv keine Datei löschen.
Rich Homolka
12

Das Löschen von Dateien basiert auf Verzeichnis- und nicht auf Dateiberechtigungen (*).

Haben Sie Schreibrechte für das Verzeichnis, in dem sich die Datei befindet?

(*) Achtung, Sie können ein Verzeichnis haben, in dem Sie festlegen, dass nur der Eigentümer der Datei sie löschen kann. Dies ist nützlich für temporäre Verzeichnisse.

Reiche Homolka
quelle
Schauen Sie auch hier nach: superuser.com/questions/784952/… wo das gleiche besprochen wird.
Meetai.com
1

Wenn das übergeordnete Verzeichnis dem Benutzer bobyoder der dataGruppe das Schreiben in dieses Verzeichnis nicht ermöglicht , würde dies dieses Verhalten erklären.

Andrew Lambert
quelle
2
Der gesamte Pfad benötigt also eine Gruppenberechtigung? Das funktioniert so.
Danidacar
1
@user: Nicht der gesamte Pfad - nur das unmittelbare übergeordnete Verzeichnis der Datei. Sie ändern nur den Inhalt des Verzeichnisses. Die höheren Eltern spielen überhaupt keine Rolle .
Grawity
Ich aktualisiere die Antworten
danidacar
1
Das ist nicht genau richtig. Sie benötigen nur Schreibrechte für das übergeordnete Verzeichnis. Die Perms können Benutzer, Gruppen oder andere sein, es müssen keine Gruppen-Perms sein, die es Ihnen erlauben.
Rich Homolka
@Rich: AFAIK, nur ein Satz wird geprüft. Wenn Sie der Eigentümer sind, überprüft das System nur die Berechtigungen des Eigentümers, nicht die der Gruppe oder der anderen. Wenn Sie in der Gruppe sind, überprüft das System nicht die Dauerwellen anderer Benutzer. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
Grawity
1

Ich habe dasselbe versucht und bin auf dasselbe Problem gestoßen.

Starten Sie eine neue Terminalsitzung, um das Problem zu beheben. Dies kann erreicht werden durch:

  1. Abmelden und wieder anmelden
  2. Gehen Sie zu einem der 6 ttys (Strg + Alt + F1-6) (Hinweis: Strg + Alt + F7 ist Ihre GUI-Sitzung)
  3. Verwenden Sie su boby, um eine neue Sitzung für den Benutzer zu starten boby.

Prost!

Hier seien Wölfe
quelle
Er erwähnt, dass er bereits als Boby angemeldet ist
Kanadier Luke REINSTATE MONICA
Er muss sich erneut anmelden als boby- die alte Sitzung scheint veraltet zu sein und die Änderungen der Gruppenzuordnung nicht wiederzugeben .
Hier sind Wölfe
1

Ich wette, die Datei, die Sie löschen möchten, befindet sich in / tmp.

Siehe Linux - Gruppenmitglied kann Datei nicht mit RW-Berechtigung löschen

In / tmp ist normalerweise der "Sticky" - oder "Restricted Deletion" -Modus eingestellt (o + t). In diesem Modus kann nur der Eigentümer der Datei Dateien in diesem Verzeichnis verschieben oder löschen, unabhängig von den Berechtigungen.

Dagelf
quelle