Ricerca nel sito web

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.

  1. Come utilizzare gli ACL (elenchi di controllo degli accessi) per impostare le quote disco per utenti/gruppi
  2. 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.