2011-05-09 08:44:23 +0000 2011-05-09 08:44:23 +0000
81
81

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

C'è una cartella che è di proprietà dell'utente tomcat6:

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

Voglio permettere ad un altro utente (ruser) i permessi di scrittura su una cartella di documenti. I due utenti (tomcat6 e ruser) non appartengono allo stesso gruppo. Ho provato ad usare setfacl:

sudo setfacl -m u:ruser:rwx document
``` &001 


ma questo mi dà l'errore `setfacl: document: Operation not supported`. Gentilmente aiutatemi.

Risposte (2)

151
151
151
2011-05-09 10:06:57 +0000

Ci sono due modi per farlo: impostare la directory su “world” scrivibile o creare un nuovo gruppo per i due utenti e rendere la directory scrivibile a quel gruppo.

Ovviamente renderla scrivibile world è una brutta cosa, quindi la seconda opzione è preferibile.

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

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

Ora che il gruppo esiste, aggiungere i due utenti ad esso:

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


Ora non resta che impostare i permessi sulla directory: 


&001 &001 


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


Si può anche cambiare 770 in qualcosa come `774` se si vuole che gli altri siano in grado di leggere i file, `775` se si vuole che gli altri leggano ed eseguano i file, ecc. Le modifiche all'assegnazione del gruppo non avranno effetto fino a quando gli utenti non si disconnettono e rientrano. 

Se si vuole anche (probabilmente lo si fa) che i nuovi file creati all'interno della directory da uno degli utenti siano automaticamente scrivibili da altri nel gruppo, allora si veda [ qui ](https://superuser.com/questions/19318/how-can-i-give-write-access-of-a-folder-to-all-users-in-linux/19333#19333).
3
3
3
2018-07-23 14:26:48 +0000

Lo script di esempio mostra un esempio per dare a w (write)/ r (read) / x (execute) l'autorizzazione al percorso della cartella /path/to/the/directory per USER1 e USER2. Se si vuole dare solo l'accesso in scrittura si prega di sostituire rwx con w.


#!/bin/bash

# Block others and people in the same group to do read/write/execute on 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