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.