GNU/Linux >> Linux Esercitazione >  >> Linux

Assegna i permessi di scrittura a più utenti su una cartella in Ubuntu

Ci sono due modi per farlo:imposta la directory su "world" scrivibile o crea un nuovo gruppo per i due utenti e rendi la directory scrivibile a quel gruppo.

Ovviamente renderlo scrivibile in tutto il mondo è una brutta cosa, quindi è preferibile la seconda opzione.

Gli utenti in Linux possono appartenere a più di un gruppo. In questo caso vuoi creare un nuovo gruppo, chiamiamolo tomandruser :

sudo groupadd tomandruser

Ora che il gruppo esiste, aggiungi i due utenti:

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

Ora non resta che impostare i permessi sulla directory:

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

Ora solo i membri del gruppo tomandruser possono leggere, scrivere o eseguire qualsiasi cosa all'interno della directory. Nota l'argomento -R dei comandi chmod e chgrp:questo dice loro di ricorrere a ogni sottodirectory della directory di destinazione e modificare ogni file e directory che trova.

Potresti anche voler cambiare 770 in qualcosa come 774 se vuoi che altri possano leggere i file, 775 se desideri che altri leggano ed eseguano i file, ecc. Le modifiche all'assegnazione di gruppo non avranno effetto fino a quando gli utenti non si disconnetteranno e riaccederanno.

Se vuoi anche (probabilmente lo vuoi) che i nuovi file creati all'interno della directory da uno degli utenti siano automaticamente scrivibili da altri nel gruppo, allora vedi qui.


Lo script seguente mostra un esempio per dare r (read) / w (write) / x (execute) autorizzazione al percorso della cartella specificato /path/to/the/directory per USER1 e USER2 . Se vuoi concedere solo l'accesso in scrittura, sostituisci rwx con 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

Risposta di opinione:

  • Mi piace mettere la mia cartella condivisa in un posto centrale. Non nella cartella home di qualcun altro, ma in /srv/common o anche (per percorsi spietatamente brevi...) /repo o simili.
  • definisci un nuovo gruppo (tipicamente per tutti gli utenti locali, a cui vuoi unirti. Tuttavia non alcuni utenti tecnici come wwwuser , a meno che non ci sia un motivo valido)
  • root è bene avere come membro, anche avere un proprietario neutrale di quella cartella condivisa
  • setGid è molto importante, in modo tale che i nuovi file diventino membri di un gruppo comune, quindi frank:common , non 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. Condividere davvero una cartella con più utenti su un computer?

  2. Autorizzazioni per la cartella Webroot Apache su Dev Server?

  3. Server Ubuntu, più utenti remoti simultanei?

  4. Come elencare tutti gli utenti in un gruppo Linux?

  5. Linux, perché non posso scrivere anche se ho i permessi di gruppo?

Come elencare gli utenti su Ubuntu 20.04

Correzione dell'errore "Impossibile scrivere nella cartella dell'applicazione" nel client BitTorrent di Vuze

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Come concedere l'autorizzazione Sudo agli utenti su Ubuntu Linux [Suggerimento per principianti]

S maiuscola nei permessi di una cartella?

Come impostare i permessi Linux per la cartella WWW?