Assegna l'accesso in lettura/scrittura a un utente su una directory specifica in Linux
In un articolo precedente, ti abbiamo mostrato come creare una directory condivisa in Linux. Qui descriveremo come fornire accesso in lettura/scrittura a un utente su una directory specifica in Linux.
Esistono due metodi possibili per farlo: il primo utilizza le ACL (Access Control Lists) e il secondo crea gruppi di utenti per gestire i permessi dei file, come spiegato di seguito.
Ai fini di questo tutorial, utilizzeremo la seguente configurazione.
Operating system: CentOS 7
Test directory: /shares/project1/reports
Test user: tecmint
Filesystem type: Ext4
Assicurati che tutti i comandi vengano eseguiti come utente root o utilizza il comando sudo con privilegi equivalenti.
Iniziamo creando la directory chiamata reports
utilizzando il comando mkdir:
mkdir -p /shares/project1/reports
Utilizzo dell'ACL per fornire accesso in lettura/scrittura all'utente nella directory
Importante: per utilizzare questo metodo, assicurati che il tipo di file system Linux (come Ext3 ed Ext4, NTFS, BTRFS) supporti le ACL.
1. Innanzitutto, controlla il tipo di file system corrente sul tuo sistema e anche se il kernel supporta ACL come segue:
df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep -i acl /boot/config*
Dallo screenshot seguente, il tipo di file system è Ext4 e il kernel supporta POSIX ACL come indicato dall'opzione CONFIG_EXT4_FS_POSIX_ACL=y.
2. Successivamente, controlla se il file system (partizione) è montato con l'opzione ACL o meno:
tune2fs -l /dev/sda1 | grep acl
Dall'output sopra, possiamo vedere che l'opzione di montaggio predefinita ha già il supporto per ACL. Se non è abilitato, puoi abilitarlo per la partizione particolare (/dev/sda3 in questo caso):
mount -o remount,acl /
tune2fs -o acl /dev/sda3
3. Ora è il momento di assegnare un accesso in lettura/scrittura a un utente tecmint
a una directory specifica chiamata reports
eseguendo i seguenti comandi.
getfacl /shares/project1/reports # Check the default ACL settings for the directory
setfacl -m user:tecmint:rw /shares/project1/reports # Give rw access to user tecmint
getfacl /shares/project1/reports # Check new ACL settings for the directory
Nello screenshot qui sopra, l'utente tecmint
ora dispone dei permessi di lettura/scrittura (rw) sulla directory /shares/project1/reports come visto dall'output del secondo comando getfacl.
Per ulteriori informazioni sugli elenchi ACL, consulta le nostre seguenti guide.
- Come utilizzare gli ACL (elenchi di controllo degli accessi) per impostare le quote disco per utenti/gruppi
- Come utilizzare gli ACL (elenchi di controllo degli accessi) per montare le condivisioni di rete
Vediamo ora il secondo metodo per assegnare l'accesso in lettura/scrittura a una directory.
Utilizzo dei gruppi per fornire accesso in lettura/scrittura all'utente nella directory
1. Se l'utente dispone già di un gruppo utenti predefinito (normalmente con lo stesso nome del nome utente), è sufficiente modificare il proprietario del gruppo della directory.
chgrp tecmint /shares/project1/reports
In alternativa, crea un nuovo gruppo per più utenti (a cui verranno concesse autorizzazioni di lettura/scrittura su una directory specifica), come segue. Tuttavia, questo creerà una directory condivisa:
groupadd projects
2. Quindi aggiungi l'utente tecmint
al gruppo projects
come segue:
usermod -aG projects tecmint # add user to projects
groups tecmint # check users groups
3. Cambia il proprietario del gruppo della directory in progetti:
chgrp projects /shares/project1/reports
4. Ora imposta l'accesso in lettura/scrittura per i membri del gruppo:
chmod -R 0760 /shares/projects/reports
ls -l /shares/projects/ #check new permissions
Questo è tutto! In questo tutorial, ti abbiamo mostrato come fornire accesso in lettura/scrittura a un utente su una directory specifica in Linux. In caso di problemi, chiedi tramite la sezione commenti qui sotto.