Cos'è#
I gruppi sono entità logiche che raggruppano più utenti per facilitare la gestione granulare dei permessi su file, directory e risorse hardware.
Come funziona#
In Linux, ogni utente deve appartenere ad almeno un gruppo. Il sistema gestisce due tipi di appartenenza:
- Primary Group (GID): Creato automaticamente alla creazione dell'utente (solitamente ha lo stesso nome dell'utente). È il gruppo assegnato di default a ogni nuovo file creato dall'utente.
- Secondary Groups: Gruppi aggiuntivi a cui l'utente viene aggiunto per ottenere privilegi specifici (es.
sudo,docker,wireshark).
Architettura dei Gruppi (Il Database di Sistema)#
I gruppi non sono "oggetti" astratti, ma righe di testo in file critici:
/etc/group: Contiene l'elenco di tutti i gruppi e i loro membri./etc/gshadow: Contiene le password dei gruppi (raramente usate, ma esistenti per sicurezza).
cat /etc/group
redteam : x : 1001 : hacker_junior,barno
│ │ │ │
│ │ │ └─ 4. MEMBRI: Lista utenti (separati da virgola)
│ │ └────────────── 3. GID: L'ID numerico del gruppo
│ └──────────────────── 2. PASSWORD: 'x' (protetta in /etc/gshadow)
└───────────────────────────── 1. NOME GRUPPO[ UTENTE: BARNO ] ───▶ Esegue il comando 'id'
│
┌───────┴──────────────────────────┐
│ │
[ UID: 1001 ] [ GID: 1001 ]
(User ID) (Group ID Primario)
│ │
└────────────────┬─────────────────┘
│
[ GRUPPI SECONDARI ]
┌──────────────┼──────────────┐
[ sudo (27) ] [ docker (999) ] [ devs (1005) ]
│ │ │
Permette Permette di Permette di
comandi root gestire i leggere /code
containers (progetto X)Comandi di Gestione Avanzata#
| Comando | Livello | Descrizione |
|---|---|---|
id [utente] | Info | Mostra UID, GID e tutti i gruppi dell'utente. |
getent group [nome] | Info | Estrae le info del gruppo direttamente dal database di sistema. |
sudo groupadd [nome] | Admin | Crea un nuovo gruppo nel sistema. |
sudo usermod -aG [G] [U] | Admin | Cruciale: -a (append) aggiunge il gruppo senza rimuovere i precedenti. |
newgrp [nome] | User | Cambia il gruppo primario per la sessione corrente (utile per i nuovi file). |
Perché è importante per la Cybersecurity#
I gruppi sono il bersaglio principale per la Privilege Escalation:
- Misconfiguration: Se un utente normale viene aggiunto al gruppo
disk, può leggere direttamente i dati grezzi dal disco rigido, scavalcando tutti i permessi del filesystem. - Docker Group: Essere nel gruppo
dockerequivale quasi sempre ad avere permessi diroot, poiché permette di montare la root del sistema ospite dentro un container con privilegi elevati. - Shadow Group: L'accesso al gruppo
shadowpermette di leggere/etc/shadowe tentare il cracking delle password offline.
Scenario Reale: Collaborazione tra Sviluppatori#
Sul server aziendale, crei una directory /opt/project_alpha.
sudo groupadd alpha_teamsudo chgrp alpha_team /opt/project_alphasudo chmod 2770 /opt/project_alpha(Il "2" iniziale è il SGID bit: ogni nuovo file creato qui erediterà automaticamente il gruppoalpha_team, garantendo che Barno e Anna possano sempre leggere i file l'uno dell'altra).
Collegato a#
- system — categoria
- permissions — per l'applicazione dei permessi rwx al gruppo
- chmod — per modificare i permessi di gruppo
- chown — per cambiare il gruppo proprietario di un file
- uid-gid-identifiers – Userid e Groupid
- user-group-management



