Neuen User mit begrenzten Rechten anlegen - wie?

  • Es geht um den Zugriff auf den RasPi per SFTP über das Internet.

    Hierzu möchte ich einige User anlegen, die lediglich in ihrem eigenen Verzeichnis Schreib- und Leserechte haben. Die SuFu habe ich benutzt und auch Beiträge gefunden, in denen beschrieben wird, wie ein User angelegt wird. Aber die Beschränkung auf ein Verzeichnis habe ich nicht finden können.

    Es sollte wie folgt funktionieren:

    User1 darf nur in /var/www/User1 schreiben und lesen,
    User2 darf nur in /var/www/User2 schreiben und lesen, etc.

    Wie müsste ich vorgehen, um das umzusetzen?

    Einen User würde ich z. B. anlegen mit

    Code
    sudo adduser Willi


    Aber wie geht es dann weiter?

  • Moin,

    das regelst du über die Verzeichnissrechte!

    chmod und chown ist dein Freund:


    sudo habe ich jetzte mal wech gelassen.

    Für alles weitere such mal nach Unix Verzeichnisberechtigungen

    Gruß Lunepi

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

    Einmal editiert, zuletzt von Lunepi (21. Februar 2014 um 12:06)

  • Danke für die sehr umfangreiche Antwort.

    Das glaube ich soweit verstanden zu haben. Ich habe es noch nicht probiert, aber so wie ich es verstehe, könnte dann auch der User Pi beispielsweise nicht mehr auf /var/www/Willi/ zugreifen. Richtig?

    Das muss aber noch funktionieren, denn ich möchte als User Pi die Daten in die einzelnen Verzeichnisse stellen und dort auch wieder löschen können.

  • Gruppen berechtigungen ist das Stichwort. Oder wenn es ganz fein graduiert sein soll ACL's. weiß aber nicht ob du dann nicht noch was nach installieren musst. Damit kannst du ein verzeichnis nur für den USer öffnen und festlegen das ein völlig anderer User schreiben darf. Stichwort "getfacl"

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Mir raucht jetzt schon der Kopf vor lauter Rechteverwaltung.

    Ich habe erfolgreich zwei User angelegt. Es sind stephan und frank. Dem User frank habe ich mit folgendem Befehl


    Code
    sudo chown -R frank /var/www


    das Recht gegeben, alle Unterordner von /var/www verwalten zu dürfen. Zumindest ist es das, was ich wollte. Habe ich das so richtig gemacht?

    User stephan hat mit


    Code
    sudo chmod 700 /var/www/Stephan/
    
    
    sudo chown stephan /var/www/Stephan/


    das (bis auf frank) alleinige Recht an dem Ordner /var/www/Stephan/ erhalten. Stimmt das soweit?

    Was muss ich jetzt noch machen, damit bei einer Verbindung via sftp der User stephan auch wirklich nur seinen Ordner /var/www/Stephan sehen kann und nicht kreuz und quer durch die Linuxverzeichnisse wandern kann? Denn im Moment landet er nach erfolgtem Login in /home/Stephan.

    Würde folgender Befehl das Homeverzeichnis passend umbiegen?

    Code
    sudo usermod -s /var/www/Stephan stephan

    Ich habe das mal probiert. Danach war kein SFTP Login mehr möglich. :(

    Wer kann mir Licht ins Dunkel bringen?

  • Code
    sudo chown -R frank /var/www

    das Recht gegeben, alle Unterordner von /var/www verwalten zu dürfen. Zumindest ist es das, was ich wollte. Habe ich das so richtig gemacht?

    chown ändert den OWNer, also den Besitzer. Das heißt jetzt gehört der Ordner /var/www und alle Unterordner ( -R ) dem Benutzer frank. Das bedeutet aber zwangsläufig auch das der Webserver Benutzer www-data nun darauf kein Zugriff mehr hat - weil die Ordner ihm nicht mehr gehören!
    Bei Linux gibt es sowohl Besitzer als auch Zugriffs-Rechte. Ein mal den Benutzer, dann die Gruppe und dann eben auch noch die Verzeichnissrechte in Form von zB drwxr-xr-x


    User stephan hat mit

    Code
    sudo chmod 700 /var/www/Stephan/
    
    
    sudo chown stephan /var/www/Stephan/


    das (bis auf frank) alleinige Recht an dem Ordner /var/www/Stephan/ erhalten. Stimmt das soweit?

    Jein... Das kommt darauf an wie die Verzeichnisrechte des übergeordneten Verzeichnisses aussehen, also von /var/ und /var/www/.. Wenn es anderen Benutzern untersagt ist da rein zu gucken, gibts ne Fehlermeldung

    Lies dir mal bitte bezüglich Rechte folgendes durch: http://wiki.ubuntuusers.de/Rechte
    Und bezüglich chown: http://wiki.ubuntuusers.de/chown
    Und was für dich auch noch wichtig wäre, chmod: http://wiki.ubuntuusers.de/chmod


    Was muss ich jetzt noch machen, damit bei einer Verbindung via sftp der User stephan auch wirklich nur seinen Ordner /var/www/Stephan sehen kann und nicht kreuz und quer durch die Linuxverzeichnisse wandern kann? Denn im Moment landet er nach erfolgtem Login in /home/Stephan.

    Das kommt auf deinen FTP-Server an.... Aber das einfachte wäre denk ich wenn du das HOMEDIR (bzw HOME_DIR) von Stephan einfach auf /var/www/Stephan änderst


    Würde folgender Befehl das Homeverzeichnis passend umbiegen?

    Code
    sudo usermod -s /var/www/Stephan stephan

    Nein. -s ändert die Shell nicht das Homedir. Die Shell ist standardmäßig /bin/bash
    Gib mal bitte nur usermod ein und les dir das durch

    Es gibt auch zu jedem Befehl eine sog. manual page, in der du genauere Informationen zu dem Befehl findest. für usermod wäre das (wen wunderts): man usermod


    Ich habe das mal probiert. Danach war kein SFTP Login mehr möglich. :(

    Ja is klar :D siehe oben

  • Oh je, dann habe ich ja so ziemlich alles falsch gemacht :(

    Würde


    Code
    sudo chown -R www-data /var/www


    denn meinen Fehler wieder ausbügeln?

    Ich werde mir die von Dir verlinkten Artikel heute Abend mal anschauen.


    edit: Ich habe es nicht wieder hin bekommen. Daher habe ich das System komplett neu aufgesetzt.
    Von mir aus darf der User sein Verzeichnis auch in /home/USER/ haben. Es muss nicht unbedingt /var/www/USER/ sein.

    Wie wäre denn dann die Vorgehensweise, wenn ich nicht möchte, dass die USER die Verzeichnisse und Daten der anderen User und des übrigen Systems sehen können? Die Links habe ich mir angeschaut, aber ich glaube es ist sinnvoll über den Stoff erst mal eine Nacht zu schlafen. Ich sehe den Wald vor Bäumen nicht mehr...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!