GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erteilen Sie mehreren Benutzern Schreibberechtigungen für einen Ordner in Ubuntu

Dazu gibt es zwei Möglichkeiten:Setzen Sie das Verzeichnis auf "world" beschreibbar oder erstellen Sie eine neue Gruppe für die beiden Benutzer und machen Sie das Verzeichnis für diese Gruppe beschreibbar.

Offensichtlich ist es eine schlechte Sache, es weltweit beschreibbar zu machen, also ist die zweite Option vorzuziehen.

Benutzer in Linux können mehreren Gruppen angehören. In diesem Fall möchten Sie eine ganz neue Gruppe erstellen, nennen wir sie tomandruser :

sudo groupadd tomandruser

Da die Gruppe jetzt existiert, fügen Sie ihr die beiden Benutzer hinzu:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

Jetzt müssen nur noch die Berechtigungen für das Verzeichnis festgelegt werden:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

Jetzt können nur Mitglieder der Gruppe tomandruser alles innerhalb des Verzeichnisses lesen, schreiben oder ausführen. Beachten Sie das Argument -R zu den Befehlen chmod und chgrp:das weist sie an, in jedes Unterverzeichnis des Zielverzeichnisses zu rekursieren und jede Datei und jedes Verzeichnis, das sie finden, zu modifizieren.

Sie können 770 auch in etwas wie 774 ändern wenn Sie möchten, dass andere die Dateien lesen können, 775 wenn Sie möchten, dass andere die Dateien lesen und ausführen usw. Änderungen der Gruppenzuweisung werden erst wirksam, wenn sich die Benutzer ab- und wieder anmelden.

Wenn Sie auch wollen (was Sie wahrscheinlich tun), dass neue Dateien, die von einem der Benutzer im Verzeichnis erstellt wurden, automatisch von anderen in der Gruppe beschreibbar sind, dann sehen Sie hier.


Das folgende Skript zeigt ein Beispiel für r (read) / w (write) / x (execute) Berechtigung für den angegebenen Ordnerpfad /path/to/the/directory für USER1 und USER2 . Wenn Sie nur Schreibzugriff gewähren möchten, ersetzen Sie bitte rwx mit w .

#!/bin/bash

# Block others and people in the same group to do `r/w/x` on the give folder:    
sudo chmod 700 /path/to/the/directory 

# Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

# Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory

Meinungsstarke Antwort:

  • Ich lege meinen freigegebenen Ordner gerne an einem zentralen Ort ab. Nicht im Home-Ordner von jemand anderem, sondern /srv/common oder sogar (für rücksichtslos kurze Wege...) /repo oder ähnliches.
  • definieren Sie eine neue Gruppe (normalerweise für alle lokalen Benutzer, denen Sie beitreten möchten. Allerdings nicht für einige technische Benutzer wie wwwuser , es sei denn, es gibt einen triftigen Grund)
  • root ist gut als Mitglied zu haben, auch einen neutralen Eigentümer dieses freigegebenen Ordners zu haben
  • setGid ist sehr wichtig, damit neue Dateien zu einer gemeinsamen Gruppenmitgliedschaft werden, also frank:common , nicht frank:frank
    sudo groupadd -f common
    usermod -aG common root
    usermod -aG common frank
    usermod -aG common mike

    # sort of hack for instant group refresh w/o logout
    # superuser.com/a/345051
    su - frank

    # sanity test1:
    cat etc/group | grep common
        common:x:1008:root,frank,mike
    # sanity test2:
    groups
        frank adm cdrom ... common
    sudo chown root:common /repo

    # (if you have shareable stuff setting somewhere else,
    #  copy it to here now)

    # no right to the world, the right rights to user and group
    chmod -R ug+rwXs,o-rwx $dest
    # why uppercase X ? → unix.stackexchange.com/a/416885

    # why s ? → superuser.com/a/277785
    # as there is no such thing as an uppercase S (directories only)
    # settings the s attribute on preexisting content would have to happen
    # like so:
    # find /repo -type d -exec chmod g+s {} \\\;

Linux
  1. Ubuntu Server, mehrere gleichzeitige Remote-Benutzer?

  2. Dateiberechtigungen unter Linux – Lesen/Schreiben/Ausführen

  3. Wie listet man alle Benutzer in einer Linux-Gruppe auf?

  4. Linux, warum kann ich nicht schreiben, obwohl ich Gruppenrechte habe?

  5. Was ist .Trash und .Trash-1000?

So listen Sie Benutzer auf Ubuntu 20.04 auf

Behebung des Fehlers „Kann nicht in den Anwendungsordner schreiben“ im Vuze BitTorrent-Client

Linux-Berechtigungen – So finden Sie Berechtigungen einer Datei

So erteilen Sie Benutzern unter Ubuntu Linux die Sudo-Berechtigung [Anfängertipp]

Großbuchstabe S in Berechtigungen eines Ordners?

Warum können „Andere“ Dateien standardmäßig in Ubuntu lesen?