Soluzione 1:
Utente RedHat:
chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids
Utente Debian/Ubuntu:
chown 0:0 /bin/* /usr/bin/*
chown daemon:daemon /usr/bin/at
chown 0:utmp /usr/bin/screen
chmod 02755 /usr/bin/screen
chmod u+s /bin/fusermount /bin/mount /bin/su /bin/mount
chmod u+s /usr/bin/sudo /usr/bin/passwd
screen
Mentre lo schermo è in esecuzione, fallo almeno due volte:
dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \
| xargs apt-get install --reinstall --
Paga molto prestare molta attenzione all'output perché se si lamenta di qualcosa che ha i permessi sbagliati, dovresti correggerlo su un'altra finestra dello schermo.
Corso intensivo sullo schermo:
Control+A - command key
Control+A a - emit a control+A
Control+A n - next "screen"
Control+A c - create "screen"
Utente Solaris:
Sei fottuto.
pkgchk -R / -f -a
ripristinerà tutti i permessi, ma la setuidità verrà comunque interrotta. Usa un backup o un'altra macchina solaris per cercare script e file setuid/setgid e correggerli manualmente.
LA COSA IMPORTANTE SUI BACKUP
È che puoi recuperarli, non che li prendi.
Altre persone ti hanno consigliato di eseguire i backup, ma voglio aggiungere che dovresti testarli. Se utilizzi un sistema unix, non c'è alcun motivo che non puoi scaricare periodicamente i file su un'altra macchina e assicurarti che tutto funzioni.
Soluzione 2:
Quasi tutto in /bin/ dovrebbe essere di proprietà di root:root, quindi se esegui quanto segue puoi correggere la proprietà su quei file:
chown root:root -R /bin/
Potresti anche voler assicurarti che il bit setuid sia impostato correttamente su /bin/su, cosa che puoi correggere con quanto segue:
chmod 4755 /bin/su
Soluzione 3:
Tieni presente che anche i flag set-uid su tutti i binari interessati potrebbero essere stati rimossi; questa è una caratteristica di sicurezza di chown. Controlla con qualche altro sistema quali binari hanno i flag set-uid o set-gid e assicurati di impostarli anche sui tuoi binari.
Soluzione 4:
Stavo per spiegare i dettagli dell'utilizzo di RPM per reimpostare i permessi dei file, ma ho trovato un sito con molte più informazioni. Menziona anche che Ubuntu/Debian (quindi .deb in generale) non lo supportano.
Ma in generale l'opzione che stai cercando sarebbe sulla falsariga:
rpm --setugids {packagename}
Soluzione 5:
Se questo fosse un sistema Debian, aptitude reinstallerei tutto.