Я только что запустил это несколько секунд назад. Мне удалось сделать Ctrl - C как только понял, что начал делать.
Пока что единственный каталог, через который он начал проходить, это /bin
.
Я боюсь делать что-нибудь еще. Пока я понял, что не могу использовать su
как мой обычный пользователь.
К счастью, у меня еще открыт еще один корневой терминал. Что мне делать?
chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids
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"
Ты пиздец.
pkgchk -R / -f -a
сбросит все разрешения, но setuid-ness все равно будет нарушен. Используйте резервную копию или другую машину Solaris, чтобы найти скрипты и файлы setuid / setgid и исправить их вручную.
В том, что вы можете их восстановить, а не в том, что вы их забираете.
Другие люди давали вам совет делать резервные копии, но я хочу добавить, что вы должны их протестировать. Если вы используете unixish систему, есть без причины что вы не можете периодически выгружать файлы на другую машину и убедиться, что все работает.
Почти все в / bin / должно принадлежать root: root, поэтому, если вы запустите следующее, вы можете исправить право собственности на эти файлы:
chown root:root -R /bin/
Вы также можете убедиться, что бит setuid правильно установлен в / bin / su, что вы можете исправить следующим образом:
chmod 4755 /bin/su
Я собирался объяснить детали использования RPM для сброса прав доступа к файлам, но я нашел сайт с большим количеством больше информации. Также упоминается, что Ubuntu / Debian (как и .debs в целом) не поддерживает его.
Но в целом вариант, который вы ищете, будет примерно таким:
rpm --setugids {packagename}
Имейте в виду, что флаги set-uid для всех затронутых двоичных файлов также могли быть удалены; это функция безопасности chown. Проверьте с помощью какой-либо другой системы, какие двоичные файлы имеют флаги set-uid или set-gid, и обязательно установите их также в ваших двоичных файлах.
Если бы это была система Debian, я бы все переустановил.
у вас есть рабочий бекап? если да, восстановите папку bin.
в противном случае посмотрите на другой ящик, в который вы установили ту же версию ubuntu и chown
к тому, что вы найдете на рабочей установке.
попробуйте это: найдите все www-данные в каталоге / bin
# find /bin -user www-data
затем измените www-данные на исходного пользователя
# find /bin -user www-data -exec chown ORiginalUser {} \;
# then change www-data back to oringal group
# find /bin -group www-data -exec chgrp originaluser {} \;
Спасибо всем за отличные отзывы, кажется, теперь все исправлено.
/ bin / su работал после того, как chmod'd до 4755 (не уверен, почему chown изменил бит suid)
я не заметил, но он также начал работать через каталог / home, но это было достаточно легко исправить (просто установите user: group для пользователя для каждого каталога)