Dateien im Home-Verzeichnis eines Benutzers vor dem ändern/löschen schützen

mh1001

Lt. Commander
Registriert
Nov. 2003
Beiträge
2.039
Hallo zusammen,

ich stehe mal wieder vor einem kleinen Linux-Problem (OS ist SuSe 9.3). ;)
Und zwar möchte ich wie der Titel schon sagt Dateien im Home-Verzeichnis eines Benutzers ablegen, so dass der entsprechende Benutzer nur Leserechte für diese hat und die Dateien nicht ändern oder löschen kann.
Gibt es da eine Lösung dies zu realisieren?


Viele Grüße

mh1001
 
Also ich würde das so machen:
Angenommen der Benutzer heißt "user" und ist in der Gruppe "group". Dann legst du einfach in seinem Home eine Datei mit dem Nutzer "root" (nur ein Beispiel, nimm einfach irgendeinen Nutzernamen, nur eben nicht "user") und der Gruppe "group". Dann gibst du der Datei die Rechte "040".
Oder du machst Nutzer "root", Gruppe "root" und Rechte 004 (wobei "root" auch wieder durch einen beliebigen anderen Nutzer/Gruppe ersetzt werden kann, nur nicht durch "user" bzw. "group").

Ich hoffe, das war irgendwie verständlich ;)
 
machst als dateibesitzer z.b. root oder ein anderer benutzer, der nicht in der gleichen gruppe ist, wie der benutzer des home-verzeichnisses und gibst dann der kategorie "others" nur leserechte (chmod 744 <dateiname>).

ganto

/edit: mist, zu langsam... :(
 
Ja, schön wäre es wenn es so einfach wäre. ;)
Aber egal von welchem Benutzer die Datei kommt und welche Gruppenangehörigkeit diese hat - der entsprechende Benutzer kann diese löschen.
Dabei ist es auch vollkommen egal, welche Dateirechte zugeteilt wurden.

MfG mh1001
 
Ich habe mal ein bisschen gesucht und Folgendes gefunden:

Berichtigung

Im Artikel zum Kommando ls im letzten EasyLinux (08/2003) wurde bei der Erklärung der Dateirechte etwas durcheinander gewürfelt. Fürs Löschen gelten nicht die Rechte der Datei selbst, sondern die Rechte des Verzeichnisses, in dem die Datei liegt. In seinem Home-Verzeichnis ist der Benutzer also König: Er kann alle Dateien dort löschen, auch wenn Sie jemand anderem gehören und er kein Schreibrecht darauf besitzt.

Demnach könntest du es also höchstens noch über die Schreibrechte des Verzeichnisses versuchen. Nimm die Schreibrechte für "other" vom Verzeichnis des Benutzers und versuche es nochmal nur über das Recht für "other". Vielleicht geht es so.

EDIT:
Ist natürlich völliger Humbug, was ich gerade geschrieben habe. Da müsstest du ja dem Benutzer alle Schreibrechte auf sein eigenes Home-Verzeichnis wegnehmen. Also, um es kurz zu machen: ich sehe da nur noch eine Möglichkeit:
Du kannst es so machen, dass du die Dateien in einem Unterverzeichnis des Home ablegst, auf das der entsprechende Nutzer keine Schreibrechte hat. Dann sollte es klappen. Die Dateien liegen dann halt in einem Unterverzeichnis. Direkt im Home sehe ich keine Möglichkeit.
 
Zuletzt bearbeitet:
Hallo sunny-side_down,

vielen Danke für deine Bemühungen.
Leider klappt das mit dem "Sticky Bit" auch nicht. Das war damals auch mein erster Gedanke, als ich versuchte eine Lösung für das Problem zu finden. Allerdings scheint auch dies nicht zu klappen.
Das mit dem Unterverzeichnis klappt leider ebenfalls nicht. So kann der entsprechende Nutzer auch einfach das Unterverzeichnis ohne irgendwelche Hindernisse löschen. ;)
Aber irgendeine Lösung muss es doch auch für soetwas geben. ;)

MfG mh1001
 
Ich hab meinen Kommentar mit dem Sticky Bit wieder gelöscht, weil das einfach nicht dir richtige Herangehensweise ist. Aber ich finde es wirklich seltsam, dass es dafür keine Möglichkeit zu geben scheint, zumindest keine offensichtliche.

Auf der anderen Seite solltest du dir vielleicht auch mal die Frage stellen, ob dein Vorgehen wirklich so gut ist in der Sache. Die Home-Verzeichnisse sind nunmal extra für die Benutzer eingerichtet worden. Da sollte man als Admin sowieso nicht reinpfuschen.

Wie wäre es denn beispielsweise mit dem Vorschlag, die Datei(en) irgendwo anders abzulegen und einfach per Link im Home darauf zu verweisen. Dann könnten die Benutzer zwar immer noch den Link löschen, aber die Daten blieben erhalten.
 
Nochmals vielen Dank für deine vielen Anregungen. ;)

Am besten erläuter ich mal etwas näher, worauf das ganze im Endeffekt hauptsächlich herausgehen soll:
Und zwar habe ich einen Server, der unter anderem als Webserver eingesetzt wird.
Auf diesen Server haben verschiedene Kunden/Benutzer (u.a. per FTP-Client) auf ihr Home-Verzeichnis Zugriff.
Nun sollen in diesem Verzeichnis gewisse Daten hinterlegt werden, die für den Kunden jederzeit einsichtig sind aber nicht verändert werden können.
Wenn es gar keine Lösung dafür gibt werde ich wohl darauf verzichten müssen, aber schön wäre es dennoch. ;)

MfG mh1001
 
Das schließt aber doch meinen letzten Vorschlag nicht aus, oder? Die Daten könnten dann ja in einem für jeden Kunden persönlich an anderer Stelle eingerichteten Verzeichnis liegen und ein Link im Home des Benutzers auf dieses Verzeichnis zeigen. Dann kann der Kunde mit einem einfachen "cd" in dieses separate Verzeichnis wechseln, dort die Daten einsehen und wieder in sein Home zurückkehren.
Hat natürlich den Nachteil, dass du für jeden Benuter zwei Verzeichnisse anlegen musst. Wäre aber vom Komfort (für den Kunden) denke ich noch vertretbar. Und es ist besser als gar nix ;)
 
mh1001 schrieb:
Nun sollen in diesem Verzeichnis gewisse Daten hinterlegt werden, die für den Kunden jederzeit einsichtig sind aber nicht verändert werden können.
Erstellen die Kunden selber diese Dateien, oder kommen sie von von dir?
Wenn sie von dir kommen, mach einfach ein
Code:
chown root:root dateiname
chmod 644 dateiname
und dann wars das für den Benutzer. Lesen darf er noch, aber mehr nicht.
 
@Michael:
Genau das funktioniert eben nicht. Die Tatsache, dass die Dateien gelöscht werden können, wird nur von den Rechten des übergeordneten Verzeichnisses bestimmt. Probier es selbst aus: erzeuge in deinem Home-Verzeichnis eine Datei, gib sie an root:root mit den Rechten 644 und dann lösche sie als ganz normaler Benutzer. Es kommt ein Hinweis, dass die Datei schreibgeschützt ist und ob man sie trotzdem löschen will, wenn man dann "y" eingibt ist die Datei verschwunden.

Das war auch mein erster Vorschlag, funktioniert halt leider nicht. Deswegen gibt es ja diese Problematik in erster Linie!
 
So wie es ausschaut wird mir dann wohl auch nichts anderes übrig bleiben als die Dateien außerhalb des Home-Verzeichnisses abzulegen.
Vor allem aufgrund dessen, dass die Dateien auch zudem noch über den Webbrowser aufrufbar sein sollte, wäre eine Lösung diese direkt zu schützen, natürlich nicht schlecht gewesen.
So werde ich wohl auf sunny-side_down's Vorschlag zurückgreifen müssen und den Rest mit Dingen wie "mod_rewrite" regeln müssen.

Falls jemandem noch eine direkte Lösung einfallen sollte bin ich natürlich jederzeit für Tipps offen. ;)

MfG mh1001
 
sunny-side_down schrieb:
@Michael:
Genau das funktioniert eben nicht.

FETT! Das wußte ich noch nicht. Man lernt nie aus!

1.) Wie wärs denn, wenn Du das Homeverzeichnis von "user" unpreviligiert mountest. Theoretisch darf der User, dem /home/user gehört dann löschen, aber am anderen Ende wird das unterbunden.

2)Oder Du mountest ein Samba-Share. Du könntest auch einen Symlink von /mnt/home/user zu /home/user machen oder sowas.

Edit: 2) Funzt aber nicht in ge-chrooteter Umgebung wie bei proftpd und Konsorten...
 
Zuletzt bearbeitet:
Hallo Michael,

danke für deine Tipps. ;)
Die zweite Möglichkeit fällt leider schon einmal weg, da ich auch vsftp nutze.
Bezüglich deiner ersten Variante habe ich versucht, mich einmal etwas darüber zu informieren. Allerdings habe ich nirgends etwas gefunden, wie ich dies in der Praxis realisiere. Wie stelle ich das am besten an?

MfG mh1001
 
Zurück
Oben