I cambiamenti di setcap sono permanenti


11

Quando si utilizza setcap per un file, questa modifica è permanente o devo richiamare setcap da qualche parte all'avvio?

setcap cap_sys_nice fooexecutable

Risposte:


15

Il setcap sul file memorizza le capacità in un attributo esteso con una chiamata a setxattr . Questo attributo esteso è memorizzato come altri attributi (proprietà, diritti ...) nel filesystem.

A partire dal kernel 2.6.24, il kernel supporta l'associazione di set di capacità a un file eseguibile usando setcap (8). I set di funzionalità del file sono memorizzati in un attributo esteso (vedere setxattr (2)) denominato security.capability.

Quindi, non è necessario reimpostare il limite su ogni riavvio.


che dire se il file viene sostituito?
— Ryanwinchester,

1
@ryanwinchester se viene modificato solo il contenuto del file, nessun problema, ma se il file viene rimosso / ricreato, anche la capacità di setcap verrà rimossa.
— Cédric Julien,

:( ah, quindi questo è il mio problema. Ho uno script che ricostruisce una directory e quindi avvia un server in ascolto sulla porta 80. Ho bisogno di capire un modo per non dover correre setcapogni volta
— ryanwinchester

"se viene modificato solo il contenuto del file, nessun problema" non è vero. La modifica del contenuto di un file comporterà la rimozione delle sue funzionalità. Vedi unix.stackexchange.com/a/283408/2526
— Richard Fearn

0

Le modifiche sono permanenti ma ho riscontrato problemi quando utilizzato con nodejs.

È possibile utilizzare authbindper fornire l'autorizzazione da parte dell'utente

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.