Linux Capabilities

Ciao lista,

    > recentemente ho scoperto una nuova feature supportata da Linux che non
    > conoscevo, le Capabilities:
    > http://man7.org/linux/man-pages/man7/capabilities.7.html

    > Quello che non mi e' chiaro e': **nel concreto** quando si
    > devono/possono usare queste capabilities? Qualcuno ha degli esempi
    > concreti di applicazioni che necessitano di avere delle capabilities?
    > In che casi e perche' bisognerebbe assegnare una capability piuttosto
    > che assegnare setuid?

Il tentativo degli sviluppatori del kernel è stato quello di suddividere
l'onnipotenza dell'utente root in in molteplici permission che potessero
venir assegnate indipendentemente.

La differenza sta appunto nel fatto che un setuid (root) equivale ad
assegnare a quel processo tutte le capabilities.

Ad esempio in ambito containers come Docker et similia, le capabilities
possono essere aggiunte o rimosse singolarmente:
https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities