Abbiamo immagini Linux basate su RH; su cui devo "applicare" alcuni "archivi speciali" per aggiornarli all'ultima versione di sviluppo del nostro prodotto.
La persona che ha creato l'archivio ha capito che nella nostra immagine di base, alcune autorizzazioni sono sbagliate; così ci hanno detto di correre
sudo chgrp -R nobody /whatever
Lo abbiamo fatto; e più tardi, quando la nostra applicazione è in esecuzione, sono emersi problemi oscuri.
Quello che ho trovato più tardi: la chiamata a chgrp sarà cancellare le informazioni setuid po 'sui nostri binari all'interno di / qualcosa.
E il vero problema è: alcuni dei nostri binari devono avere quel bit setuid impostato per funzionare correttamente.
Per farla breve: c'è un modo per eseguire quel comando "chgrp" senza uccidere i miei bit setuid?
Ho appena eseguito il seguente sul mio Ubuntu locale; portando allo stesso risultato:
mkdir sticky
cd sticky/
touch blub
chmod 4755 blub
ls -al blub
-> mi mostra il nome del file con sfondo rosso -> quindi, sì, setuid
chgrp -R myuser .
ls -al blub
-> mi mostra il nome del file senza sfondo rosso -> setuid è sparito
setuid
bit, non il sticky
bit. (2) Non cancellare il setuid
bit quando lo fai chgrp
o chown
sarebbe un problema di sicurezza.
4XXX
bit si chiama setuid bit (s
), non appiccicoso. Sticky è ilt
bit e il suo scopo è un po 'diverso: en.wikipedia.org/wiki/Sticky_bit