Skip to main content
  1. Concetti/

Uid Gid Identifiers

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'è
#

UID (User ID) e GID (Group ID) sono identificativi numerici che il Kernel Linux utilizza per identificare utenti e gruppi e applicare le policy di controllo accessi (Permissions). In un sistema Linux, poiché "tutto è un file", il sistema ha bisogno di un modo univoco per stabilire chi possiede cosa e quali permessi ha. UID e GID sono le "carte d'identità" digitali che il Kernel utilizza per gestire questa sicurezza.

Sei solo un numero

In Linux, i nomi sono solo "etichette di cortesia" per noi umani; per il kernel, tu sei solo un numero.

Come funziona
#

Il Kernel non riconosce i nomi (stringhe); ogni processo e ogni file è associato a un ID numerico.

       [ PROCESSO ] ◀──── Verifica ────▶ [ FILE ]
       (Eseguito da)                      (Proprietà)
        UID: 1000                          UID: 1000 (Owner)
        GID: 1000                          GID: 1000 (Group)
                                           PERMESSI: rwx r-- ---

🆔 UID (User Identifier)
#

L'UID è un numero intero univoco assegnato a ogni utente nel sistema. Anche se noi usiamo nomi come barno o root, il Kernel ragiona solo per numeri.

  • Root (UID 0): È l'utente onnipotente. Qualsiasi processo con UID 0 scavalca ogni controllo di permesso.
  • System Users (1-999): Creati dal sistema per gestire servizi specifici (es. bin, sys, systemd) senza dare loro pieni privilegi.
  • Normal Users (1000+): Il primo utente umano creato (come te) riceve solitamente l'UID 1000.

👥 GID (Group Identifier)
#

Il GID è l'identificativo numerico di un gruppo. Viene utilizzato per applicare permessi a un insieme di utenti contemporaneamente.

  • Primary GID: Ogni utente ha un gruppo primario (spesso con lo stesso nome e ID dell'utente) che viene assegnato automaticamente a ogni nuovo file creato da quell'utente.
  • Supplementary GIDs: Un utente può far parte di altri gruppi (es. sudo, docker) per ereditare permessi extra.

Perché è importante per Blue Team
#

  1. Privilege Escalation: Molti exploit mirano a cambiare l'UID del processo corrente a 0.
  2. Identity Spoofing: Se un attaccante riesce a creare un utente con lo stesso UID di un admin in un sistema NFS o file system remoto, otterrà i suoi permessi.
  3. Audit: I log di sistema (auditd) registrano spesso l'UID invece del nome utente; conoscere la mappatura è vitale per ricostruire un incidente.

Scenario Reale
#

Trovi un file sospetto con proprietario UID 1005, ma non esiste un utente con quel nome nel file /etc/passwd. Questo indica che l'utente è stato rimosso, ma i suoi file ("Orphaned files") sono rimasti sul disco, rappresentando un potenziale rischio se un nuovo utente venisse creato con lo stesso UID.

Collegato a
#

  • system — categoria
  • linux-groups — concetto correlato
  • permissions — come vengono usati UID/GID per i permessi

Related