Назад | Перейти на главную страницу

Случайно запустил chown www-data: www-data / -R от имени пользователя root

Я только что запустил это несколько секунд назад. Мне удалось сделать Ctrl - C как только понял, что начал делать.

Пока что единственный каталог, через который он начал проходить, это /bin.

Я боюсь делать что-нибудь еще. Пока я понял, что не могу использовать su как мой обычный пользователь.

К счастью, у меня еще открыт еще один корневой терминал. Что мне делать?

Пользователь 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 систему, есть без причины что вы не можете периодически выгружать файлы на другую машину и убедиться, что все работает.

Почти все в / 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 для пользователя для каждого каталога)