Users and groups (Italiano)
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.
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 comandicat /dev/audio > miofileecat 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
| 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.
/etc/shells, altrimenti il modulo PAM pam_shells(8) negherà la richiesta di login.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.
# 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
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/crondal vecchio al nuovo nome e quindi aprendocrontab -eper 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/Programse 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$HOMEper 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
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 filepasswdè 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 campopasswordconterrà 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
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
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
È 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
-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
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.
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.
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). |
/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 gnokiiAUR. | |
| 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.
|