Introduzione a POSIX

Introduzione a POSIX: Permessi, Storia e Sicurezza nei Sistemi Unix e Linux

✍️ La storia si ripete?

Questa riflessione nasce da un curioso intreccio di pensieri. Da un lato, il flusso incessante di nuove release di sistemi Unix-like; dall’altro, la lettura del libro A Quarter Century of UNIX di Peter Salus. In particolare, colpisce il capitolo “Dueling Unixes”, che racconta come negli anni ’80 e ’90 molte aziende (Apollo, HP, IBM, Microsoft, SCO, Sun, ecc.) abbiano gareggiato per il controllo degli standard Unix.

Una delle tesi è che questa frammentazione abbia favorito Microsoft e l’ascesa di Windows NT. Nasce spontanea una domanda: con Linux rischiamo di ripetere lo stesso errore?


🔐 Introduzione tecnica a POSIX

POSIX (Portable Operating System Interface) è una serie di standard che uniformano il comportamento dei sistemi operativi Unix-like.

Ogni file in Unix/Linux ha:

  • Un proprietario
  • Un gruppo
  • Permessi per utente, gruppo e altri: read (r), write (w), execute (x)

Tutto questo si regge sul concetto di super-utente (root), con accesso illimitato. Dennis Ritchie (creatore di Unix) stesso lo definì:

“Un difetto teorico, e spesso pratico, in ogni schema di protezione.”


🧱 Il problema dei privilegi

Anche solo per cambiare l’orario di sistema, un processo deve essere eseguito come root, aumentando i rischi di sicurezza.


🧩 POSIX Capabilities: la risposta moderna

Nel 1997, il comitato POSIX 1003.1e propose un insieme di capability, privilegi specifici che un processo può avere. Lo standard non fu completato, ma molte capability sono oggi implementate nel kernel Linux.

✳️ Esempi di capability:

CapabilityDescrizione
CAP_CHOWNCambiare il proprietario di un file
CAP_DAC_OVERRIDEIgnorare i permessi standard di accesso
CAP_NET_RAWUsare socket RAW
CAP_SYS_MODULECaricare moduli del kernel

Visualizzale con:

man 7 capabilities

⚙️ Esempio pratico

Assegna a Nginx il diritto di usare la porta 80 senza essere root:

setcap cap_net_bind_service=+ep /usr/bin/nginx

✅ Conclusione

Capire le POSIX capabilities è fondamentale per creare sistemi Linux sicuri e moderni. Offrono granularità, riducono i privilegi necessari e aiutano a prevenire escalation di privilegi.

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.