User nur auf sein /home-Verzeichnis Zugriff geben

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Lukas9950
Beiträge: 1
Registriert: 02.04.2010 22:53:01

User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von Lukas9950 » 02.04.2010 22:59:02

Hallo,

ich möchte einem User nur auf sein /home-Verzeichnis Zugriff geben, d.h., er darf nicht weiter hinaus, auch nichts anschauen, er sitzt sozusagen im Ordner fest.
Ich habe auch schon gegoogelt und bin auf einige Lösungen gestoßen, die haben mir aber leider nicht viel weitergeholfen.

Der User soll per (S)FTP und Shell Zugriff haben.

Danke schon mal :)

Mit freundlichen Grüßen
Lukas

debianoli
Beiträge: 4166
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von debianoli » 02.04.2010 23:42:57

Du kannst die zwei Punkte verbiegen, dann kommt man aus einem verzeichnis nicht mehr höher:

Code: Alles auswählen

chmod guo-rwx '..'
Wenn du das in /home als Root machst, dann kommt da kein User mehr höher als /home.
------------
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!

pluvo

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von pluvo » 02.04.2010 23:46:07

@debianoli: Mach das mal und versuche als Benutzer irgendwas aufzurufen: @Lukas: Wohin soll er denn nicht dürfen? Pass doch lieber die Verzeichnisse an.
Zuletzt geändert von pluvo am 02.04.2010 23:52:30, insgesamt 2-mal geändert.

xdanx
Beiträge: 473
Registriert: 15.11.2007 22:07:42
Lizenz eigener Beiträge: GNU General Public License

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von xdanx » 02.04.2010 23:47:42

die user loggen sich nur von entfernt ein?

dann kannst du chroot-Unterstützung im ssh server aktivieren.

Folgendes muss die /etc/ssh/sshd_config dazu enthalten:

Code: Alles auswählen

Subsystem sftp internal-sftp

Match User benutzername
  ChrootDirectory %h
auf diese Weise kann sich der User mit dem Namen 'benutzername' zwar per sftp und sogar ssh einloggen, bleibt aber in seinem home-verzeichnis gefangen.

EDIT: 2 wichtige Dinge vergessen:

1.: das angegebene chroot-Verzeichnis muss dann aber root gehören

2.: damit auch der SSH-Login (und nicht nur sftp) funktioniert, muss man eine komplette chroot-umgebung, inkl. nötiger binaries und libraries erstellen.

debianoli
Beiträge: 4166
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von debianoli » 03.04.2010 16:02:53

pluvo hat geschrieben:@debianoli: Mach das mal und versuche als Benutzer irgendwas aufzurufen:
Ja, hab ich getestet, der Inhalt des Verzeichnisses wird angezeigt. Wenn du das allerdings zB mit /home machst, dann kommt kein User mehr aus seinem Verzeichnis /home/user raus.
------------
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!

pluvo

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von pluvo » 03.04.2010 16:57:31

debianoli hat geschrieben:Ja, hab ich getestet, der Inhalt des Verzeichnisses wird angezeigt. Wenn du das allerdings zB mit /home machst, dann kommt kein User mehr aus seinem Verzeichnis /home/user raus.
vm ist ein normaler Benutzer:

Code: Alles auswählen

vm@seth:~$ pwd
/home/vm
vm@seth:~$ ls /boot/
config-2.6.26-2-amd64  initrd.img-2.6.26-2-amd64      System.map-2.6.26-2-amd64
grub                   initrd.img-2.6.26-2-amd64.bak  vmlinuz-2.6.26-2-amd64
Und nun kommt chmod zum Einsatz:

Code: Alles auswählen

root@seth:/home# ls -la
insgesamt 12
drwxr-xr-x  3 root root 4096 20. Feb 2009  .
drwxr-xr-x 22 root root 4096 12. Apr 2009  ..
drwxr-xr-x  3 vm   vm   4096 30. Mär 19:00 vm
root@seth:/home# chmod guo-rwx '..'
root@seth:/home# ls -la
insgesamt 12
drwxr-xr-x  3 root root 4096 20. Feb 2009  .
d--------- 22 root root 4096 12. Apr 2009  ..
drwxr-xr-x  3 vm   vm   4096 30. Mär 19:00 vm
Und nun schauen wir uns doch mal vm an:

Code: Alles auswählen

vm@seth:~$ cd /
bash: cd: /: Permission denied
vm@seth:~$ ls /boot/
bash: /bin/ls: Permission denied
vm@seth:~$ man ls
bash: man: command not found
Der kann gar nichts mehr. Wenn ich mich mit dem Benutzer vm nun auslogge, wird der sich auch nicht mehr einloggen können:

Code: Alles auswählen

Cannot execute /bin/bash: Permission denied
@debianoli: Wie hast du das denn getestet?

debianoli
Beiträge: 4166
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von debianoli » 03.04.2010 17:22:09

pluvo hat geschrieben:@debianoli: Wie hast du das denn getestet?
Anders als du, ich habe das aus dem User-Verzeichnis heraus gemacht. Hätte ich besser auch ausführlicher schreiben sollen. Also als root um Home von Test-User sepp

Code: Alles auswählen

root@olian:~$ pwd
/home/sepp
chmod o-r '..'
Allerdings bringt das dann nichts, wenn man den Pfad zu Unterverzeichnissen kennt. Die kann ein anderer User trotzdem lesen. Was stattdessen funktioniert, ist das Verweigern des Lesens per chmod:

Code: Alles auswählen

chmod o-r -R /home/user/*
Aber das war dir sicher schon bekannt... Ich habe das gestern Nacht mal auf die Schnelle getestet, da hat meine Methode den Anschein gemacht, dass sie funktioniert. Und das geht auch, allerdings nur teilweise.

Frage: Funktioniert ein

Code: Alles auswählen

chmod o-r -R /*
oder zerschieße ich dann das System? Also kann dann ein User sepp nicht mehr richtig arbeiten, da sepp nicht alle Programme starten kann?
------------
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!

pluvo

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von pluvo » 03.04.2010 17:31:22

debianoli hat geschrieben:Anders als du, ich habe das aus dem User-Verzeichnis heraus gemacht. Hätte ich besser auch ausführlicher schreiben sollen. Also als root um Home von Test-User sepp
Der User kann dann zwar nicht mehr ins /home wechseln, aber ins oberste Verzeichnis: Ich würde einfach die Verzeichnisse sperren, in die er nicht rein soll. Zum Beispiel:

Code: Alles auswählen

chmod 700 /home/test
Für zukünftige Benutzer:

Code: Alles auswählen

dpkg-reconfigure adduser
Ansonsten könnte man noch sicher mit SELinux eine Sandbox bauen, aber das wäre wohl ein bisschen Overkill :P

Alternativende
Beiträge: 2094
Registriert: 07.07.2006 18:32:05

Re: User nur auf sein /home-Verzeichnis Zugriff geben

Beitrag von Alternativende » 06.04.2010 12:17:58

ja also so ganz verstehe ich das auch nicht. Als User kann er sich zwar die anderen vorhanden Homeverzeichnisse anzeigen lassen, aber bspw. nicht deren Inhalte etc.. Wenn er sich auch per SSH einloggen können soll kannst du ihm ja nicht auf alles die Rechte verweigern, denn er muss ja Programme aus /usr/bin aufrufen können und Zugriff auf /tmp/ haben. Ich würde dem User noch die lesende Berechtigung auf /root entziehen und das müsste es gewesen sein. Blöd ist allerdings das du so nicht die Ausführung spezieller Programme verhindern kannst die nunmal alle User ausführen können.

Antworten