Users and groups (Italiano)

Stato della traduzione
Questo articolo è la versione tradotta di
Users and groups
. Data dell'ultima traduzione: 2026-02-28. Se ci sono
cambiamenti
nella versione inglese, è possibile dare una mano a sincronizzarne la traduzione.
Articoli correlati
DeveloperWiki:UID / GID Database
run0
Sudo
Polkit
Privilege elevation for graphical applications
File permissions and attributes
systemd-homed
Reset lost root password
Identity management
Utenti e gruppi sono utilizzati su GNU/Linux per il
controllo degli accessi
, vale a dire per controllare l'accesso ai file, alle directory e alle periferiche del sistema. Di suo Linux offre meccanismi di controllo degli accessi relativamente semplici e rudimentali; per opzioni più avanzate, si vedano
ACL
,
Capabilities
e
PAM#Configuration How-Tos
.
Panoramica
Un
utente
è chiunque utilizzi un computer. In questa introduzione descriviamo i nomi che rappresentano tali utenti. Mettiamo il caso che Maria o Paolo stiano usando il computer: essi possono usare i nomi Dragonlady o Pirate al posto del loro vero nome. La cosa importante è che il computer abbia un nome per ogni account creato, ed è tramite questo nome che una persona ottiene l'accesso per utilizzare il computer. Anche alcuni servizi di sistema vengono eseguiti utilizzando account utente limitati o privilegiati.
La gestione degli utenti viene effettuata a scopo di sicurezza, limitando l'accesso in modi specifici. Il
superutente
(root) ha accesso completo al sistema operativo e alla sua configurazione; è destinato esclusivamente all'uso amministrativo. Gli utenti non privilegiati possono utilizzare diversi programmi per l'
elevazione controllata dei privilegi
.
Qualsiasi individuo può avere più di un account, purché utilizzi un nome diverso per ogni account creato. Si tenga presente che esistono alcuni nomi riservati che non possono essere utilizzati, come "root".
Gli utenti possono far parte di un "gruppo" e gli utenti possono essere aggiunti a un gruppo esistente per usufruire dell'accesso privilegiato che esso concede.
Nota
Il principiante deve usare questi strumenti con attenzione e tenersi alla larga da qualsiasi altro account utente
esistente
, diverso dal proprio.
Permessi e proprietà
Da
In UNIX Everything is a File
:
Il sistema operativo UNIX cristallizza un paio di idee e concetti unificanti che ne hanno plasmato il design, l'interfaccia utente, la cultura e l'evoluzione.
Uno dei più importanti è probabilmente il mantra: "tutto è un file", ampiamente considerato come uno dei punti distintivi di UNIX.
Questo principio di progettazione fondamentale consiste nel fornire un paradigma unificato per l'accesso a una vasta gamma di risorse di input/output: documenti, directory, dischi rigidi, CD-ROM, modem, tastiere, stampanti, monitor, terminali e persino alcune comunicazioni di rete e tra processi. Il trucco consiste nel fornire un'astrazione comune per tutte queste risorse, ognuna delle quali fu chiamata "file" dai padri di UNIX. Poiché ogni "file" è esposto attraverso la stessa API, è possibile utilizzare lo stesso set di comandi di base per leggere e scrivere su un disco, una tastiera, un documento o un dispositivo di rete.
Da
Extending UNIX File Abstraction for General-Purpose Networking
:
Un'astrazione fondamentale e molto potente, coerente, fornita in UNIX e nei sistemi operativi compatibili è l'astrazione del file. Molti servizi del sistema operativo e interfacce di dispositivi sono implementati per fornire una metafora di file o file system alle applicazioni. Questa particolarità consente nuovi utilizzi e aumenta notevolmente la potenza delle applicazioni esistenti: semplici strumenti progettati per usi specifici possono, con le astrazioni dei file UNIX, essere utilizzati in modi innovativi. Uno strumento semplice, come cat, progettato per leggere uno o più file e inviare il contenuto allo standard output, può essere utilizzato per leggere da dispositivi di I/O attraverso speciali file di dispositivo, che si trovano tipicamente nella directory
/dev
. Su molti sistemi la registrazione e la riproduzione audio possono essere effettuate rispettivamente e in modo semplice con i comandi
cat /dev/audio > miofile
e
cat miofile > /dev/audio
.
Ogni file su un sistema GNU/Linux è di proprietà di un utente e di un gruppo. Vi sono tre tipi di permessi di accesso: lettura, scrittura ed esecuzione. Diversi permessi di accesso possono essere applicati all'utente proprietario del file, al gruppo proprietario e agli altri (coloro che non hanno la proprietà). È possibile determinare i proprietari e i permessi di un file visualizzando il formato di elenco lungo del comando
ls
:
$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux
La prima colonna mostra i permessi del file (ad esempio, il file
initramfs-linux.img
ha i permessi
-rw-r--r--
). La terza e la quarta colonna mostrano rispettivamente l'utente e il gruppo che sono proprietari del file. In questo esempio, tutti i file sono di proprietà dell'utente
root
e del gruppo
root
.
$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared
In questo esempio, la directory
sf_Shared
è di proprietà dell'utente
root
e del gruppo
vboxsf
. È anche possibile determinare i proprietari e i permessi di un file utilizzando il comando stat:
Utente proprietario:
$ stat -c %U /media/sf_Shared/
root
Gruppo proprietario:
$ stat -c %G /media/sf_Shared/
vboxsf
Diritti di accesso:
$ stat -c %A /media/sf_Shared/
drwxrwx---
I permessi di accesso sono visualizzati in tre gruppi di caratteri, che rappresentano rispettivamente i permessi dell'utente proprietario, del gruppo proprietario e degli altri. Ad esempio, i caratteri
-rw-r--r--
indicano che il proprietario del file ha i permessi di lettura e scrittura, ma non di esecuzione (
rw-
), mentre gli utenti appartenenti al gruppo proprietario e gli altri utenti hanno solo il permesso di lettura (
r--
e
r--
). Allo stesso modo, i caratteri
drwxrwx---
indicano che il proprietario del file e gli utenti appartenenti al gruppo proprietario hanno tutti i permessi di lettura, scrittura ed esecuzione (
rwx
e
rwx
), mentre agli altri utenti è negato l'accesso (
---
). Il primo carattere rappresenta il tipo di file.
Elencare i file di proprietà di un utente o di un gruppo con l'utility
find
:
# find / -group
nomegruppo
# find / -group
numerogruppo
# find / -user
utente
L'utente e il gruppo proprietari di un file possono essere modificati con il comando
chown
(change owner). I permessi di accesso di un file possono essere modificati con il comando
chmod
(change mode). Vedere
chown(1)
,
chmod(1)
e
Linux file permissions
per ulteriori dettagli.
Shadow
Gli strumenti di gestione di utenti, gruppi e password su Arch Linux provengono dal pacchetto
shadow
, che è una dipendenza del
meta pacchetto
base
.
Elenco dei file
Attenzione
Non modificare questi file a mano. Esistono utility che gestiscono correttamente il blocco ed evitano di invalidare il formato del database. Vedere
#Gestione degli utenti
e
#Gestione dei gruppi
per una panoramica.
File
Scopo
/etc/shadow
Informazioni sicure sugli account utente
/etc/passwd
Informazioni sugli account utente
/etc/gshadow
Contiene le informazioni oscurate per gli account di gruppo
/etc/group
Definisce i gruppi ai quali appartengono gli utenti
Gestione degli utenti
Per elencare gli utenti attualmente loggati nel sistema, è possibile utilizzare il comando
who
. Per elencare tutti gli account utente esistenti, incluse le loro proprietà memorizzate nel
database degli utenti
, eseguire
passwd -Sa
come root. Vedere
passwd(1)
per la descrizione del formato di output.
Per aggiungere un nuovo utente, utilizzare il comando
useradd
:
# useradd -m -G
gruppi_aggiuntivi
-s
shell_di_login
nomeutente
-m
/
--create-home
viene creata la directory home dell'utente come
/home/
nomeutente
. La directory viene popolata dai file contenuti nella directory skeleton. I file creati sono di proprietà del nuovo utente.
-G
/
--groups
un elenco separato da virgole di gruppi supplementari di cui l'utente è anche membro. L'impostazione predefinita prevede che l'utente appartenga solo al gruppo iniziale.
-s
/
--shell
un percorso verso la shell di login dell'utente. Assicurarsi che la shell scelta sia installata se si sceglie qualcosa di diverso da
Bash
. La shell predefinita per i nuovi utenti creati può essere impostata in
/etc/default/useradd
.
Attenzione
Per poter essere in grado di effettuare il login, la shell di login deve essere tra quelle elencate in
/etc/shells
, altrimenti il modulo
PAM
pam_shells(8)
negherà la richiesta di login.
Nota
La password per l'utente appena creato va definita utilizzando
passwd
, come mostrato in
#Esempio di aggiunta di un utente
.
Se viene specificato un gruppo di login iniziale tramite nome o numero, questo deve riferirsi a un gruppo già esistente. Se non specificato, il comportamento di
useradd
dipenderà dalla variabile
USERGROUPS_ENAB
contenuta in
/etc/login.defs
. Il comportamento predefinito (
USERGROUPS_ENAB yes
) è quello di creare un gruppo con lo stesso nome dell'utente.
Quando la shell di login è destinata a non essere usata da un vero utente, ad esempio quando l'account utente è creato per un servizio specifico, si può specificare
/usr/bin/nologin
al posto di una shell regolare in modo da rifiutare un login (si veda
nologin(8)
). Per altre opzioni supportate si veda
useradd(8)
.
Esempio di aggiunta di un utente
Per aggiungere un nuovo utente chiamato
archie
, creandone la directory home e utilizzando tutti gli altri valori predefiniti in termini di gruppi, nomi di directory, shell utilizzata e vari altri parametri:
useradd -m archie
Sebbene non sia obbligatorio proteggere il nuovo utente
archie
con una password, è caldamente raccomandato farlo:
passwd archie
Il comando
useradd
sopra descritto creerà automaticamente anche un gruppo chiamato
archie
e lo imposterà come gruppo predefinito per l'utente
archie
. Fare in modo che ogni utente abbia il proprio gruppo (con il nome del gruppo uguale al nome dell'utente) è il modo preferito per aggiungere utenti.
Si potrebbe anche impostare il gruppo predefinito su qualcos'altro usando l'opzione
-g
, ma si noti che, nei sistemi multi-utente, l'uso di un singolo gruppo predefinito (es.
users
) per ogni utente non è raccomandato. Il motivo è che tipicamente, il metodo per facilitare l'accesso in scrittura condiviso per specifici gruppi di utenti consiste nell'impostare il valore
umask
dell'utente a
002
, il che significa che il gruppo predefinito avrà sempre, per impostazione predefinita, l'accesso in scrittura a qualsiasi file creato. Vedere anche
User Private Groups
. Se un utente deve essere membro di un gruppo specifico, specificare quel gruppo come gruppo supplementare al momento della creazione dell'utente.
Nello scenario raccomandato, in cui il gruppo predefinito ha lo stesso nome del nome utente, tutti i file sono per impostazione predefinita scrivibili solo dall'utente che li ha creati. Per consentire l'accesso in scrittura a un gruppo specifico, i file e le directory condivisi possono essere resi scrivibili per impostazione predefinita per chiunque faccia parte di questo gruppo e il gruppo proprietario può essere impostato automaticamente al gruppo che possiede la directory genitore impostando il bit
setgid
su questa directory:
chmod g+s
la_nostra_directory_condivisa
In caso contrario, viene utilizzato il gruppo predefinito del creatore del file (solitamente lo stesso del nome utente).
Se è richiesto temporaneamente un cambio di GID, è possibile utilizzare anche il comando
newgrp
per cambiare il GID predefinito dell'utente in un altro GID durante l'esecuzione. Ad esempio, dopo aver eseguito
newgrp
nomegruppo
, i file creati dall'utente saranno associati al GID
nomegruppo
, senza richiedere un nuovo login. Per tornare al GID predefinito, eseguire
newgrp
senza un nome di gruppo.
Modificare i valori predefiniti dell'utente
I valori predefiniti utilizzati per la creazione di nuovi account sono impostati in
/etc/default/useradd
e possono essere mostrati mediante
useradd --defaults
. Ad esempio, per cambiare la shell predefinita a livello globale, impostare
SHELL=/usr/bin/
shell
. Una shell diversa può essere specificata anche a livello utente con l'opzione
-s
/
--shell
. Mediante
chsh -l
si possono elencare le shell di login valide. È anche possibile specificare file da aggiungere alle directory home degli utenti appena creati in
/etc/skel
. Questa possibilità si rivela utile per quei window manager minimalisti dove i file di configurazione necessitano di una configurazione manuale per avere un comportamento tipico dei desktop environment. Ad esempio, per impostare scorciatoie predefinite quanto si creano nuovi utenti:
# mkdir /etc/skel/.config
# cp ~archie/.config/sxhkd /etc/skel/.config
Si veda anche:
Display manager#Run ~/.xinitrc as a session
per aggiungere xinitrc come opzione per tutti gli utenti sul display manager.
Esempio di aggiunta di un utente di sistema
Gli utenti di sistema possono essere utilizzati per eseguire processi e demoni sotto un utente diverso, proteggendo (ad esempio con
chown
) file e directory e per per altre possibilità di sicurezza del computer.
Con il seguente comando viene creato un utente di sistema senza accesso alla shell e senza una directory
home
(si può aggiungere il parametro
-U
per creare un gruppo con lo stesso nome dell'utente e aggiungere l'utente a questo gruppo):
# useradd --system -s /usr/bin/nologin
nomeutente
Se l'utente di sistema richiede un ID utente e di gruppo specifico, specificarli con le opzioni
-u
/
--uid
e
-g
/
--gid
al momento della creazione dell'utente:
# useradd --system -u 850 -g 850 -s /usr/bin/nologin
nomeutente
Cambiare il nome di login o la directory home di un utente
Per cambiare la directory home di un utente:
# usermod -d
/mia/nuova/home
-m
nomeutente
L'opzione
-m
crea automaticamente anche la nuova directory e vi sposta il contenuto.
Suggerimento
È possibile creare un collegamento dalla vecchia directory home dell'utente alla nuova. Questa operazione permetterà ai programmi di trovare i file che hanno percorsi già impostati.
# ln -s /mia/nuova/home/ /mia/vecchia/home
Assicurarsi che
non
ci sia uno
/
finale su
/mia/vecchia/home
.
Per cambiare il nome di login di un utente:
# usermod -l
nuovonome
vecchionome
Attenzione
Assicurarsi di non aver effettuato l'accesso come l'utente di cui si sta per cambiare il nome. Aprire una nuova tty (ad esempio
Ctrl+Alt+F6
) e accedere come root o come un altro utente ed
elevarlo a root
.
usermod
dovrebbe impedire di fare questa operazione per errore.
Cambiare un nome utente è sicuro e facile se fatto correttamente: basta usare il comando
usermod
. Se l'utente è associato a un gruppo con lo stesso nome, è possibile rinominarlo con il comando
groupmod
. In alternativa, è possibile modificare direttamente il file
/etc/passwd
: si veda
#Database degli utenti
per un'introduzione al suo formato.
Tenere inoltre presenti le seguenti note:
Se si utilizza
sudo
, assicurarsi di aggiornare la propria configurazione per riflettere i nuovi nomi utente (tramite il comando
visudo
come root).
I
crontab
personali devono essere regolati rinominando il file dell'utente in
/var/spool/cron
dal vecchio al nuovo nome e quindi aprendo
crontab -e
per cambiare eventuali percorsi e fare in modo che regoli i permessi del file di conseguenza.
È necessario rinominare e modificare manualmente i contenuti delle directory e dei file personali di
Wine
in
~/.wine/drive_c/users
,
~/.local/share/applications/wine/Programs
e possibilmente anche altri.
Potrebbe essere necessario reinstallare alcune estensioni di Thunderbird, come
Enigmail
.
Qualsiasi cosa sul sistema (scorciatoie desktop, script di shell, ecc.) che utilizzi un percorso assoluto verso la propria home (cioè
/home/vecchionome
) dovrà essere modificata per riflettere il nuovo nome. Per evitare questi problemi negli script di shell, utilizzare semplicemente le variabili
~
o
$HOME
per le directory home.
Inoltre, non dimenticare di modificare di conseguenza i file di configurazione in
/etc/
che si basano sul percorso assoluto (ad es. Samba, CUPS, e così via). Un buon modo per scoprire quali file è necessario aggiornare consiste nell'usare il comando grep in questo modo:
grep -r
vecchio_utente
*
Altri esempi di gestione utente
Per inserire le informazioni utente per il commento
GECOS
(ad esempio il nome completo dell'utente), digitare:
# chfn
nomeutente
(in questo modo
chfn
viene eseguito in modalità interattiva).
In alternativa, il commento GECOS può essere impostato più liberamente con:
# usermod -c "Commento"
nomeutente
Per contrassegnare la password di un utente come scaduta e  richiederne la creazione di una nuova al primo accesso, digitare:
# chage -d 0
nomeutente
Gli account utente possono essere eliminati con il comando
userdel
:
# userdel -r
nomeutente
L'opzione
-r
specifica che devono essere eliminati anche la directory home dell'utente e lo spool della posta. Per cambiare la shell di login dell'utente:
# usermod -s
/usr/bin/bash
nomeutente
Suggerimento
Lo script
adduser
AUR
permette di eseguire i compiti di
useradd
,
chfn
e
passwd
in modo interattivo. Vedere anche
FS#32893
.
Database degli utenti
Le informazioni sugli utenti locali sono memorizzate nel file di testo semplice
/etc/passwd
: ognuna delle sue righe rappresenta un account utente e ha sette campi delimitati dai due punti.
account:password:UID:GID:GECOS:directory:shell
dove:
account
è il nome utente. Questo campo non può essere vuoto. Si applicano le regole di denominazione standard *NIX.
password
è la password dell'utente.
Attenzione
Il file
passwd
è leggibile da tutti (world-readable), quindi memorizzare le password (sotto forma di hash o altro) in questo file non è sicuro. Al contrario, Arch Linux utilizza le
password oscurate
: il campo
password
conterrà un carattere segnaposto (
x
) che indica che l'hash della password è salvato nel file ad accesso limitato
/etc/shadow
. Per questo motivo si raccomanda di cambiare sempre le password utilizzando il comando
passwd
.
UID
è l'ID numerico dell'utente. In Arch il primo nome di login (dopo root) per un cosiddetto utente normale, a differenza dei servizi, è UID 1000 per impostazione predefinita; le successive voci UID per gli utenti saranno superiori a 1000.
GID
è l'ID numerico del gruppo primario per l'utente. I valori numerici per i GID sono elencati in
/etc/group
.
GECOS
è un campo opzionale utilizzato per scopi informativi; solitamente contiene il nome completo dell'utente, ma può anche essere utilizzato da servizi come
finger
e gestito con il comando
chfn
. Questo campo è facoltativo e può essere lasciato in bianco.
directory
è utilizzata dal comando login per impostare la variabile d'ambiente
$HOME
. Diversi servizi con i propri utenti utilizzano
/
, ma gli utenti normali solitamente impostano una directory sotto
/home
.
shell
è il percorso verso la
shell di comando
predefinita dell'utente. Questo campo è facoltativo e il valore predefinito è
/usr/bin/bash
.
Esempio:
archie:x:1001:1003:Archie,
qualche commento qui
,,:/home/archie:/usr/bin/bash
che, nelle sue varie parti, significa: utente
archie
, la cui password si trova in
/etc/shadow
, il cui UID è 1001 e il cui gruppo primario è 1003. Archie è il nome completo e c'è un commento associato all'account; la directory home è
/home/archie
e usa
Bash
.
Il comando
pwck
può essere utilizzato per verificare l'integrità del database degli utenti. Può ordinare contemporaneamente l'elenco degli utenti per UID, il che può essere utile per il confronto:
# pwck -s
Attenzione
I valori predefiniti dei file in Arch Linux vengono creati come
pacnew files
dalle nuove versioni del pacchetto
filesystem
. A meno che Pacman non emetta messaggi correlati per l'azione, questi file
.pacnew
possono, e dovrebbero, essere ignorati e rimossi. I nuovi utenti e i gruppi predefiniti vengono aggiunti o aggiunti nuovamente secondo il bisogno da
systemd-sysusers(8)
o dallo script di installazione del pacchetto.
Controlli di integrità automatici
Invece di eseguire manualmente
pwck
e
grpck
, il
timer di systemd
shadow.timer
, che fa parte di
shadow
ed è abilitato dall'installazione di questo pacchetto, avvierà
shadow.service
quotidianamente.
shadow.service
eseguirà
pwck(8)
e
grpck(8)
per verificare l'integrità sia dei file delle password che di quelli dei gruppi. Se vengono segnalate discrepanze, i gruppi possono essere modificati con il comando
vigr(8)
e gli utenti con
vipw(8)
. Ciò fornisce un ulteriore margine di protezione in quanto questi comandi bloccano i database per la modifica. Si noti che l'editor di testo predefinito è vi, ma se la variabile d'ambiente
EDITOR
è impostata, questo verrà utilizzato al suo posto.
Mantenere allineati gli utenti di sistema con i valori presenti in sysuser.d di systemd
Attenzione
systemd non fornisce alcun modo ufficiale per migrare gli account esistenti ad account di sistema completamente bloccati
[1]
.
Man mano che i pacchetti adottano il
change-sysusers-to-fully-locked-system-accounts
, gli utenti di sistema creati dai pacchetti in passato non erediteranno i nuovi valori predefiniti dei pacchetti a motivo dell'aumentata sicurezza dello stato bloccato o scaduto. Questi utenti devono essere modificati a mano per questo cambiamento. Lo script
user-analysis.sh
fa proprio questo.
Inoltre, lo script identifica anche gli utenti orfani (quelli creati da un pacchetto non più presente nel sistema) e può eliminarli automaticamente.
Gestione dei gruppi
Il file
/etc/group
è quello che definisce i gruppi nel sistema (si veda
group(5)
per i dettagli). Esiste anche
gshadow
che viene usato raramente. I suoi dettagli sono in
gshadow(5)
.
Visualizzare l'appartenenza ai gruppi con il comando
groups
:
$ groups
utente
Se
utente
è omesso, vengono visualizzati i nomi dei gruppi dell'utente corrente.
Il comando
id
fornisce ulteriori dettagli, come l'UID dell'utente e i GID associati:
$ id
utente
Per elencare tutti i gruppi presenti sul sistema:
$ cat /etc/group
Creare nuovi gruppi con il comando
groupadd
:
# groupadd
gruppo
Nota
Se l'utente è attualmente loggato, deve disconnettersi e riconnettersi affinché le modifiche abbiano effetto.
È possibile aggiungere utenti a un gruppo con il comando
gpasswd
(si veda
FS#58262
riguardo agli errori):
# gpasswd -a
utente
gruppo
In alternativa, aggiungere un utente a gruppi supplementari con
usermod
(sostituire
gruppi_aggiuntivi
con un elenco separato da virgole):
# usermod -aG
gruppi_aggiuntivi
nomeutente
Attenzione
Se l'opzione
-a
viene omessa nel comando
usermod
sopra riportato, l'utente viene rimosso da tutti i gruppi non elencati in
gruppi_aggiuntivi
, vale a dire l'utente sarà membro solo dei gruppi elencati in
gruppi_aggiuntivi
.
Modificare un gruppo esistente con il comando
groupmod
, ad esempio per rinominare il gruppo
vecchio_gruppo
in
nuovo_gruppo
:
# groupmod -n
nuovo_gruppo
vecchio_gruppo
Nota
Questo comando cambierà il nome di un gruppo ma non il GID numerico del gruppo. Pertanto, tutti i file che prima erano di proprietà di
vecchio_gruppo
saranno ora di proprietà di
nuovo_gruppo
.
Per eliminare gruppi esistenti:
# groupdel
gruppo
Per rimuovere utenti da un gruppo:
# gpasswd -d
utente
gruppo
Il comando
grpck
può essere utilizzato per verificare l'integrità dei file dei gruppi di sistema.
Attenzione
I valori predefiniti dei file in Arch Linux vengono creati come
pacnew files
dalle nuove versioni del pacchetto
filesystem
. A meno che Pacman non emetta messaggi correlati per l'azione, questi file
.pacnew
possono, e dovrebbero, essere ignorati e rimossi. I nuovi utenti e i gruppi predefiniti vengono aggiunti o aggiunti nuovamente secondo il bisogno da
systemd-sysusers(8)
o dallo script di installazione del pacchetto.
Elenco dei gruppi
Questa sezione spiega lo scopo dei gruppi essenziali del pacchetto
filesystem
. Esistono molti altri gruppi, che verranno creati con il
GID corretto
quando viene installato il relativo pacchetto. Vedere la pagina principale del software per i dettagli.
Nota
Quando si rimuove un pacchetto, questa azione non rimuove anche l'utente e il gruppo (UID e GID) creati in modo automatico. Questo comportamento è intenzionale perché altrimenti qualsiasi file creato durante il suo utilizzo rimarrebbe orfano e ciò sarebbe un potenziale rischio per la sicurezza.
Gruppi utente
Gli utenti di workstation/desktop non-root hanno spesso bisogno di essere aggiunti ad alcuni dei seguenti gruppi per consentire l'accesso alle periferiche hardware e facilitare l'amministrazione del sistema:
Gruppo
File interessati
Scopo
adm
Gruppo di amministrazione, comunemente usato per dare accesso in lettura ai log protetti. Ha pieno accesso in lettura ai file del
journal
.
ftp
/srv/ftp/
Accesso ai file serviti dai
server FTP
.
games
/var/games
Accesso ad alcuni software di gioco.
http
/srv/http/
Accesso ai file serviti dai
server HTTP
.
log
Accesso ai file di log in
/var/log/
creati da
syslog-ng
.
rfkill
/dev/rfkill
Diritto di controllare lo stato di alimentazione dei dispositivi wireless (usato da
rfkill
).
sys
Diritto di amministrare le stampanti in
CUPS
.
systemd-journal
/var/log/journal/*
Può essere usato per fornire accesso in sola lettura ai log di systemd, come alternativa a
adm
e
wheel
. In caso contrario, vengono visualizzati solo i messaggi generati dall'utente.
uucp
/dev/ttyS[0-9]+
,
/dev/tts/[0-9]+
,
/dev/ttyUSB[0-9]+
,
/dev/ttyACM[0-9]+
,
/dev/rfcomm[0-9]+
Porte seriali
RS-232
e dispositivi ad esse collegati.
wheel
Gruppo di amministrazione, comunemente usato per dare privilegi per eseguire azioni amministrative. Ha pieno accesso in lettura ai file del
journal
e il diritto di amministrare le stampanti in
CUPS
. Può anche essere usato per dare accesso alle utility
sudo
e
su
(nessuna delle due lo usa per impostazione predefinita). Fornisce l'accesso all'utility
run0
.
Gruppi di sistema
I seguenti gruppi sono utilizzati per scopi di sistema, l'assegnazione agli utenti è richiesta solo per scopi dedicati:
Gruppo
File interessati
Scopo
dbus
usato internamente da
dbus
kmem
/dev/port
,
/dev/mem
,
/dev/kmem
locate
/usr/bin/locate
,
/var/lib/locate
,
/var/lib/mlocate
,
/var/lib/slocate
Si veda
Locate
.
lp
/dev/lp[0-9]
,
/dev/parport[0-9]
Accesso ai dispositivi della porta parallela (stampanti e altro).
mail
/usr/bin/mail
nobody
Gruppo non privilegiato.
proc
/proc/
pid
/
Un gruppo autorizzato ad apprendere informazioni sui processi altrimenti proibite dall'opzione di montaggio
hidepid=
del
file system proc
. Il gruppo deve essere esplicitamente impostato con l'opzione di montaggio
gid=
.
root
/*
Amministrazione e controllo completo del sistema (root, admin).
smmsp
gruppo
sendmail
.
tty
/dev/tty
,
/dev/vcc
,
/dev/vc
,
/dev/ptmx
utmp
/run/utmp
,
/var/log/btmp
,
/var/log/wtmp
Vedere
utmp, wtmp e btmp
.
Gruppi pre-systemd
Prima che Arch migrasse a
systemd
, gli utenti dovevano essere aggiunti manualmente a questi gruppi per poter accedere ai dispositivi corrispondenti. Questo metodo è stato deprecato a favore di
udev
che contrassegna i dispositivi con un
tag
uaccess
e
logind
che assegna i permessi agli utenti dinamicamente tramite
ACL
in base a quale sessione è attualmente attiva. Si noti che, perché ciò funzioni, la sessione non deve essere interrotta (si veda
General troubleshooting#Session permissions
per controllarlo).
Esistono alcune eccezioni rilevanti che richiedono l’aggiunta di un utente ad alcuni di questi gruppi: ad esempio, se si desidera consentire agli utenti di accedere al dispositivo anche quando non sono autenticati. Tuttavia, si noti che l’aggiunta degli utenti a tali gruppi può compromettere alcune funzionalità (ad esempio, l’appartenenza al gruppo
audio
compromette il cambio rapido di utente e consente alle applicazioni di impedire il mixaggio software).
Gruppo
File interessati
Scopo
audio
/dev/audio
,
/dev/snd/
,
/dev/rtc0
Accesso diretto all'hardware audio, per tutte le sessioni. È ancora richiesto per far funzionare
ALSA
e
OSS
in sessioni remote, vedere
ALSA#User privileges
, altrimenti non raccomandato. A differenza di alcune altre distribuzioni, questo gruppo non viene utilizzato per i
privilegi in tempo reale
.
disk
/dev/sd[a-zA-Z][1-9]
,
/dev/nvme[0-9]p[1-9]
,
/dev/mmcblk[0-9]p[1-9]
Accesso ai dispositivi a blocchi non interessati da altri gruppi come
optical
,
floppy
e
storage
.
floppy
/dev/fd[0-9]
Accesso alle unità floppy.
input
/dev/input/event[0-9]
,
/dev/input/mouse[0-9]
Accesso ai dispositivi di input. Introdotto in systemd 215.
kvm
/dev/kvm
Accesso alle macchine virtuali che utilizzano
KVM
.
optical
/dev/sr[0-9]
,
/dev/sg[0-9]
Accesso ai dispositivi ottici come unità CD e DVD.
scanner
/var/lock/sane
Accesso all'hardware dello scanner.
storage
/dev/st[0-9][lma]
,
/dev/nst[0-9][lma]
Usato per ottenere l'accesso a unità rimovibili come dischi rigidi USB, chiavette flash, lettori MP3; permette all'utente di montare dispositivi di archiviazione. Ora esclusivamente per l'accesso diretto ai nastri se non sono coinvolte regole udev personalizzate. Richiesto anche per manipolare alcuni dispositivi tramite
udisks/udisksctl
.
video
/dev/fb/0
,
/dev/misc/agpgart
Accesso ai dispositivi di cattura video, accelerazione hardware 2D/3D, framebuffer (
X
può essere usato
senza
appartenere a questo gruppo).
Gruppi inutilizzati
I seguenti gruppi non sono attualmente utilizzati per alcuno scopo:
Gruppo
File interessati
Scopo
bin
nessuno
Storico
daemon
lock
Usato per l'accesso ai file di blocco. Richiesto ad esempio da
gnokii
AUR
.
mem
network
Inutilizzato per impostazione predefinita. Può essere usato ad esempio per concedere l'accesso a NetworkManager (vedere
NetworkManager#Set up PolicyKit permissions
).
power
uuidd
users
Il gruppo primario per gli utenti quando non vengono utilizzati i gruppi privati degli utenti (generalmente non raccomandato), ad esempio quando si creano utenti con
USERGROUPS_ENAB no
in
/etc/login.defs
o l'opzione
-N
/
--no-user-group
di
useradd
.