Unklarheit wegen Sticky Bit

f.gruber

f.gruber

Eroberer
Hallo, ich blicke nicht ganz durch mit den Permissions.
Beispiel:
In einem Verzeichnis ist das StickyBit gesetzt
Code:
drwxrwsrwt 2 hs        hs_lehrer  4096 14. Jan 13:04 BE_2011
In diesem Verzeichnis sind Dateien, die alle der Gruppe hs_lehrer gehören. Diese Gruppe hat im Verzeichnis und auch auf die darin enthaltenen Dateien Schreibrechte, wie man sieht.
Code:
-rw-rw-r-- 1 pniew_tob hs_lehrer 29764804 14. Jan 13:21 Tobiasz.xcf
Möchte ich nun als Benutzer xyz, der zur Gruppe hs_lehrer gehört, diese Datei umbenennen oder löschen, bekomme ich die Fehlermeldung:
Code:
mv Tobiasz.xcf test
mv: Verschieben von „Tobiasz.xcf“ nach „test“ nicht möglich: Die Operation ist nicht erlaubt
Heißt das also, dass das Sticky Bit Vorrang hat vor dem Schreibrecht der Gruppe?
Oder habe ich wo einen Denkfehler?

Jedenfalls möchte ich, dass der Gruppeneigentümer Dateien löschen und umbenennen kann.
 
Soweit ich das verstanden habe, ist es nur dem Eigentümer möglich, Dateien zu löschen, wenn das StickyBit gesetzt ist.
Die Gruppenzugehörigkeit ist hier nur zweitrangig.
 
Nicht ganz...
Bei ausführbaren Programmen mit einem Sticky-Bit wird veranlasst das das Programm nicht aus dem Arbeitsspeicher entfernt wird. Beim nächsten Start des Programmes muss es also nicht wieder in den RAM geladen werden.
Bei Verzeichnissen ermöglicht das Sticky-Bit das anlegen von gemeinsam genutzten Verzeichnissen. Jeder kann nun in dieses Verzeichnis schreiben, allerdings auch jede Datei darin löschen. Durch das Setzen des Sticky-Bits
wird es nur dem Eigentümer einer Datei erlaubt, diese zu löschen.
 
Nicht ganz...
Bei ausführbaren Programmen mit einem Sticky-Bit wird veranlasst das das Programm nicht aus dem Arbeitsspeicher entfernt wird. Beim nächsten Start des Programmes muss es also nicht wieder in den RAM geladen werden.
Bei Verzeichnissen ermöglicht das Sticky-Bit das anlegen von gemeinsam genutzten Verzeichnissen. Jeder kann nun in dieses Verzeichnis schreiben, allerdings auch jede Datei darin löschen. Durch das Setzen des Sticky-Bits
wird es nur dem Eigentümer einer Datei erlaubt, diese zu löschen.

Das stimmt!
Aber etwas anderes habe ich ja auch nicht gesagt. Das mit dem Programmcode im RAM habe ich nur nicht erwähnt, weil ich es für dieses Problem nicht für relevant gehalten habe. ;)
 
... ist es nur dem Eigentümer möglich, Dateien zu löschen, wenn das StickyBit gesetzt ist.
Die Gruppenzugehörigkeit ist hier nur zweitrangig.

Ok, da bin ich also einem Irrtum aufgesessen. Ich hatte angenommen, dass sich die Lösch-Sperre nur auf "others" bezieht.

Gibt es eine Möglichkeit, der Gruppe hs_lehrer (in meinem obigen Beispiel) das Löschen und Umbenennen zu erlauben? Unter Samba gibt es die Option
Code:
 admin users = @hs_lehrer
für eine Freigabe. Dann agiert der User dieser Gruppe als Benutzer root in dieser Freigabe.
Aber wie geht so was ohne Samba?
 
Kommt drauf an, was du eigentlich erreichen möchtest.
Willst du einen Ordner haben, auf den nur Mitglieder einer bestimmten Gruppe Vollzugriff haben und alle anderen nur Lesen dürfen?
Dann würde ich das StickyBit wegnehmen und das mit den normalen Rechten regeln.

Code:
chmod -R g=rwxX,o=rxX /pfad/zu/hs_lehrer

Dieser Befehl dürfte das erledigen, falls es das war, was du wolltest.
 
Code:
man chmod

Der Text ist nicht so lang und dürfte all deine Fragen beantworten. ;)

Eigentlich war es sinnlos von mir, sowohl x als auch X zu schreiben, denn das eine ist ein Ersatz für das andere. Dieser Text erklärt das ganz gut.
 
Zuletzt bearbeitet:
diese Stickybit-Löschsperre ist sowie ziemlich idiotisch da sie zum beispiel folgendes nicht verhindern kann:

Code:
cat /dev/null > Datei

dieser Befehl kann auch von others und gruppe ausgeführt werden, sofern diese auf die schreibrechte haben und ist vergleichbar mit dem löschen der datei, weil alles was dort übrigbleibt eine leere datei ist.
 
Zuletzt bearbeitet:
Kommt drauf an, was du eigentlich erreichen möchtest.
Willst du einen Ordner haben, auf den nur Mitglieder einer bestimmten Gruppe Vollzugriff haben und alle anderen nur lesen dürfen?
Nein, ich will einen Ordner haben, in den alle Benutzer Dateien hineinschreiben können. Es soll aber nur Mitgliedern der Gruppe hs_lehrer möglich sein, vorhandene Dateien in diesem Ordner zu löschen oder umzubenennen.

Ich habe also das Sticky Bit gesetzt, damit zwar alle in den Ordner schreiben können, aber dort keine Dateien löschen und umbenennen können.
Unerwünschter Nebeneffekt ist, dass auch die Gruppe hs_lehrer dadurch nichts mehr löschen und umbenennen kann ...
Code:
chmod -R g=rwxX,o=rxX /pfad/zu/hs_lehrer
Dieser Befehl dürfte das erledigen ...

Leider nicht, weil ich für "others" das Recht brauche, Dateien in den Ordner zu schreiben.
 
diese Stickybit-Löschsperre ist sowie ziemlich idiotisch da sie zum Beispiel folgendes nicht verhindern kann:
Code:
cat /dev/null > Datei
Ok, das ist zwar interessant, aber für mich in der Praxis belanglos, weil

1. zur Zeit nur über Samba zugegriffen wird und
2. falls doch jemand an einem Client Linux arbeiten sollte, kaum einer über das Knowhow verfügen dürfte, um auf diese Art die Löschsperre zu umgehen.
 

Ähnliche Themen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

HP PSC 2175 - CUPS druckt nicht

NagiosGrapher 1.7.1 funktioniert nicht

Ubuntu X / dbus problem

Opensuse 11 WLAN sichtbar, jedoch keine Verbindung

Zurück
Oben