Benutzer Ordner zuweisen?
-
- Beiträge: 8
- Registriert: 08.05.2013 17:47:25
Benutzer Ordner zuweisen?
Hey,
Ich würde gerne einen Benutzer erstellen und diesen einem bestimmen Ordner zuweisen. Nun habe ich ihn bereits erstellt, aber wie weiße ich ihm einen bestimmten Ordner zu?
Beispiel:
Benutzer - Eduard
Kann nur auf den Ordner /opt/Eduard zugreifen und diesen sehen.
Soll dort aber Programme ausführen starten und stoppen dürfen.
Alle anderen Ordner, Prozesse und Datein sollen für den Benutzer Eduard verborgen bleiben.
Ich würde gerne einen Benutzer erstellen und diesen einem bestimmen Ordner zuweisen. Nun habe ich ihn bereits erstellt, aber wie weiße ich ihm einen bestimmten Ordner zu?
Beispiel:
Benutzer - Eduard
Kann nur auf den Ordner /opt/Eduard zugreifen und diesen sehen.
Soll dort aber Programme ausführen starten und stoppen dürfen.
Alle anderen Ordner, Prozesse und Datein sollen für den Benutzer Eduard verborgen bleiben.
Re: Benutzer Ordner zuweisen?
schau dir mal chroot an. Je nach Programmen wirds allerdings etwas komplexer, wenn diese z.B. auf Hardware-Nahe sachen zugreifen müssen, oder ähnliches.
"Wer sich nicht bewegt, spürt seine Fesseln nicht." - Rosa Luxemburg
-
- Beiträge: 8
- Registriert: 08.05.2013 17:47:25
Re: Benutzer Ordner zuweisen?
Es soll nur eine Gameserver Console sein mehr nicht.
Wie verstecke ich denn ALLE Ordner aus diesen einen für den Benutzer?
Wie verstecke ich denn ALLE Ordner aus diesen einen für den Benutzer?
-
- Beiträge: 2468
- Registriert: 06.12.2005 10:38:46
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Baustelle
Re: Benutzer Ordner zuweisen?
Hier erstmal grundsätzliches zu den Rechtekonzepten von unixoiden Systemen:
Der Ordner hat einem Benutzer und einer Gruppe und dann gibt es für ALLE Dateien und Ordner Rechte. Diese Rechte werden unterschieden für:
-den Besitzer
-die Gruppe
-alle anderen
Ein Beispiel:
Das Beispiel oben ist ein Teil eines Listings (ls -l):
-Das erste Zeichen signalisiert, ob es sich um einen Ordner handelt (d= directory)
-dann folgen die Rechte in 3 Dreierblocks: user/gruppe/world (world -> alle anderen Benutzer)
Art der Rechte: r=read, w=write, x=execute
Dann folgen die Eigentumsrechte.
Für obiges Beispiel heisst das:
Datei und Ordner gehöhren dem user "frank" und der gruppe "users"
für "debug_handbrake_nfs" haben alle Leserechte (frank, users, world), schreiben (und damit auch löschen) darf nur frank
Für den Ordner Desktop hat Frank alle Rechte (x braucht es auch um in den Ordner hinein wechseln zu dürfen), der Rest darf nix
Was Du also brauchst ist ein User mit einer eigenen Gruppe (das macht Linux standardmässig, also dann eduard eduard (statt frank users) und der Ordner muss die Rechte haben wie der Ordner Desktop im Beispiel.
Wenn der user eduard allerdings wirklich ALLE anderen Sachen nicht sehen soll wird schwierig, weil er ja auch nix sehen darf, was er zum funktionieren braucht. Falls Du meinst "nix von den andern user": dann brauchst Du nur dafür zu sorgen, dass die Verzeichnisse für world keine Rechte haben und die user nicht Mitglieder von gleich Gruppen sind.
Der Ordner hat einem Benutzer und einer Gruppe und dann gibt es für ALLE Dateien und Ordner Rechte. Diese Rechte werden unterschieden für:
-den Besitzer
-die Gruppe
-alle anderen
Ein Beispiel:
Code: Alles auswählen
-rw-r--r-- 1 frank users 303104 Mar 15 18:29 debug_handbrake_nfs
drwx------ 2 frank users 4096 May 3 17:45 Desktop
-Das erste Zeichen signalisiert, ob es sich um einen Ordner handelt (d= directory)
-dann folgen die Rechte in 3 Dreierblocks: user/gruppe/world (world -> alle anderen Benutzer)
Art der Rechte: r=read, w=write, x=execute
Dann folgen die Eigentumsrechte.
Für obiges Beispiel heisst das:
Datei und Ordner gehöhren dem user "frank" und der gruppe "users"
für "debug_handbrake_nfs" haben alle Leserechte (frank, users, world), schreiben (und damit auch löschen) darf nur frank
Für den Ordner Desktop hat Frank alle Rechte (x braucht es auch um in den Ordner hinein wechseln zu dürfen), der Rest darf nix
Was Du also brauchst ist ein User mit einer eigenen Gruppe (das macht Linux standardmässig, also dann eduard eduard (statt frank users) und der Ordner muss die Rechte haben wie der Ordner Desktop im Beispiel.
Wenn der user eduard allerdings wirklich ALLE anderen Sachen nicht sehen soll wird schwierig, weil er ja auch nix sehen darf, was er zum funktionieren braucht. Falls Du meinst "nix von den andern user": dann brauchst Du nur dafür zu sorgen, dass die Verzeichnisse für world keine Rechte haben und die user nicht Mitglieder von gleich Gruppen sind.
-
- Beiträge: 8
- Registriert: 08.05.2013 17:47:25
Re: Benutzer Ordner zuweisen?
Ich will halt nicht dass der user Eduard sich vl. configurations dateien oder so saugen kann. Damit er nix auslesen kann was er nicht darf oder so
Re: Benutzer Ordner zuweisen?
Gar nicht. Die Berechtigungen sind nicht aus Spaß so locker gesetzt.Francisxx0 hat geschrieben:Wie verstecke ich denn ALLE Ordner aus diesen einen für den Benutzer?
Dein Programm (das der nutzer starten können darf) nutzt im Normalfall einige Funktionen aus sognannten Bibleotheken, die Debian schon mitbringt das es die benutzen kann muss es die auch sehen können. Dann ruft es oft andere Programme, die in debian schon enthalten sind auf (echo grep...) Die muss es ausführen dürfen. Dann will es vieleicht in das netzwerk oder buchstaben auf dein Terminal schreiben dazu muss es dahin auch schreiben dürfen...
Fürhe einfach mal ein beliebiges größeres Programm damit aus (strace musst du vorher installieren)
strace -f [PROGRMM]
Dann wird dir angezeigt welche Dateien es öffnet (open) (um damit ggf. mit write oder read zu lesen), ausführt (exec(ve)), welcehn Links es folgt (readlink) und von welchen Dateien es die Eigenschaften anschaut ((f)stat).
Du hast dir nicht ein mhrere GiB großes Betriebssystem installiert, obwohl dein Programm auch ohne tut.
Die einzige vernünftige Möglichkeit das wiklich alles abzuschirmen ist das schon genannte emulieren eines anderen zweiten vollständigen OS. (Sei es jetzt mit chroot, VrtualBox oder sonstwas.)
Wo er nicht darf darf er nichts. Meistens sind die Berechtigungen so strikt wie möglich gesetzt. Nur bei einigen Konfigurationsdateien sehen das einige nichtsicherheitskritische Programme etwas lockerer wiel es mitunter einfach bequemer ist. z.B. ziegt cron standardmäßig file seine Konfiguration an, weil man halt sehen kann wann viel läuft und man selbst vielleicht wann anders kommt. Da kann man die Berechtigungen tatsächlich enger setzen.Damit er nix auslesen kann was er nicht darf oder so
Zuletzt geändert von wanne am 08.05.2013 18:50:27, insgesamt 2-mal geändert.
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 2468
- Registriert: 06.12.2005 10:38:46
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Baustelle
Re: Benutzer Ordner zuweisen?
uuhund??? (ich bin Total gespannt. Geiler Cliffhanger
)
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
-
- Beiträge: 8
- Registriert: 08.05.2013 17:47:25
Re: Benutzer Ordner zuweisen?
Naja, der User kann auf jedenfall z.b. auf die Log dateien von /opt/minecraft zugreifen obwohl ich ihn nur für /opt/samp1 erstellt habe. Er kann zwar nichts ändern oder löschen, aber er kann sie öffnen.
Re: Benutzer Ordner zuweisen?
Alle anderen Ordner, Prozesse und Datein sollen für den Benutzer Eduard verborgen bleiben.
Das lässt sich weitgehend mit z.B. SELinux und Co. realisieren – trivial ist’s nicht (und ich kann auch nicht im Detail sagen, wie es zu machen wäre). Ansonsten: wenn dein Eduard gar nichts aus /opt/minecraft braucht, kannst du dessen Berechtigungen auf 700 setzen (sofern er einem anderen User gehört, und sonst auch keiner drauf zugreifen muss (Webserver, etc.)
cu,
niemand
Re: Benutzer Ordner zuweisen?
Dann musst du a) eine Shell stricken, die genau das kann und nichts sonst oder b) chrooten oder c) die Berechtigung von den vermeintlich schuetzenswerten Daten entsprechend restriktiv setzen.Francisxx0 hat geschrieben:Es soll nur eine Gameserver Console sein mehr nicht.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Benutzer Ordner zuweisen?
Ja, wie gesagt, manchmal gibt es Dateien die man für so ungefährlich hällt, dass man ihnen lockerere berechtigungen gibt.Francisxx0 hat geschrieben:Naja, der User kann auf jedenfall z.b. auf die Log dateien von /opt/minecraft zugreifen obwohl ich ihn nur für /opt/samp1 erstellt habe. Er kann zwar nichts ändern oder löschen, aber er kann sie öffnen.
Kannst du abschalten mit:
Code: Alles auswählen
chmod o-r /opt/minecraft
Code: Alles auswählen
chmod o-x /opt/minecraft
Sprich du kannst nicht sagen der Ordner ist gut und alles andere Böse.
Das ist sehr schwer. Fast jeder User muss Daten die er selbst schreibt ausführen dürfen. Und damit kannst du dir deine eigene shell ohne Beschränkungen bauen. Und bei vielen Programmen bekommst du es hin, dass sie in irgend einer weise Code ausführen. (Plugins ist da das simpelste Stichwort.)Cae hat geschrieben:eine Shell stricken, die genau das kann und nichts sons
Lediglich, wenn der User nur ein sehr kleines Programm, dass der Admin verwaltet und updatet nutzen darf ist das sinnvoll möglich
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Benutzer Ordner zuweisen?
Welche Programme soll Eduard denn starten und stoppen können? Beliebige? Oder nur bestimmte?Francisxx0 hat geschrieben:Beispiel:
Benutzer - Eduard
Kann nur auf den Ordner /opt/Eduard zugreifen und diesen sehen.
Soll dort aber Programme ausführen starten und stoppen dürfen.
Alle anderen Ordner, Prozesse und Datein sollen für den Benutzer Eduard verborgen bleiben.
Vielleicht wäre der Ansatz, Eduard gar keinen lokalen Account zu geben, sondern irgendein Web-Interface zu basteln, einfacher.
Ansonsten gibt es noch bash -r und rssh.
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001