Пользователь Redhat:
chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids
Пользователь 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
Во время работы экрана сделайте это как минимум дважды:
dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \
| xargs apt-get install --reinstall --
Обратите очень пристальное внимание на вывод, потому что, если он жалуется на что-то, имеющее неправильные разрешения, вы должны исправить это в другом окне экрана.
Ускоренный курс на экране:
Control+A - command key
Control+A a - emit a control+A
Control+A n - next "screen"
Control+A c - create "screen"
Пользователь Solaris:
Вы трахались
pkgchk -R / -f -a
сбросит все разрешения, но setuid-ness все равно будет нарушен. Используйте резервную копию или другую машину Solaris, чтобы найти сценарии и файлы setuid / setgid и исправить их вручную.
ВАЖНАЯ вещь о резервных копиях
Разве что ты можешь их восстановить, а не то, что ты их берешь?
Другие люди советовали вам делать резервные копии, но я хочу добавить, что вы должны их проверять. Если вы используете unixish систему, нет никаких причин, по которым вы не можете периодически выгружать файлы на другую машину и убедиться, что все работает.