Я сделал это:
sudo chown -R myname /usr/
и теперь я не могу использовать sudo
команду из-за этой ошибки:
sudo: должен быть корень setuid
И когда я читаю, это означает, что владельцем этого файла /usr/bin/sudo
не является рут. Это мой пользователь сейчас из-за чу на /usr
папку.
На многих форумах и блогах люди предлагают сделать это как root:
# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo
... но проблема в том, что мне нужно войти в систему как root, но я не могу, потому что если я пишу su
в терминале, пароль неверный (на самом деле я использую пароль, который я добавил к своему пользователю):
$ su
Password:
su: Authentication failure
Так я могу вернуть sudo
команду?
Изменить: Моя Ubuntu находится под Paralells на моем Mac OS X.
su
, вам будет предложено ввести пароль root , а не пароль вашего пользователя, как сsudo
. Вы знаете пароль пользователя root для этой машины?sudo chmod -R cirk:cirk /usr
чего вы пытались достичь?Ответы:
Если у вас есть похожая система, которую вы можете использовать в качестве руководства, чтобы увидеть, как правильно владеть всеми файлами, тогда вы можете загрузиться в режиме восстановления, перейти в корневую оболочку и вручную восстановить правильное владение для всех пользователей. файлы в
/usr
.Самым быстрым способом может быть переустановка вашей ОС или восстановление из резервной копии.
В Ubuntu или аналогичном по умолчанию пароль root не используется (учетная запись отключена), поэтому вы не можете
su
.источник
chown
нетchmod
. Поскольку все в/usr
папке должно бытьroot:root
, это должно быть легко, а не кропотливое исправление,chmod
которое означал бы клопбер.chown
сбрасывает биты setxid. Есть несколько файлов/usr
, которые не принадлежат руту; больше, которые находятся в другой группе (особенно в программах setgid/usr/bin
).Поскольку вы сохранили права доступа к единственному компоненту, который предоставляет вам доступ на уровне root, вам потребуется некоторая помощь из-за пределов текущей программной среды, чтобы это исправить.
Я полагаю, что самый простой способ - это загрузить LiveCD для вашего дистрибутива, смонтировать диск и изменить права доступа к файлам, используя список
chmod
, указанный вами оттуда.Вы также можете попробовать загрузиться в однопользовательском режиме, чтобы получить корневую оболочку.
Имейте в виду, что обычно все вещи в
/usr/
каталоге должны принадлежать,root
поэтому вы просто должны иметь возможность сделать рекурсивный способchown
исправить все, что вы сломали. ( Edit: Per @Gilles комментарии , очевидно , работаетchown
брейки Setuid и setgid биты, так что вам будет нужно вручную сравнить с существующей системой , чтобы восстановить все те , как только вы снова закрепить право собственности) .Тем не менее, очень FEW должно быть
4111
. Это дополнительное специальное разрешение, но оно заставляет его работать от имени пользователя root даже при запуске от имени пользователя! Толькоsudo
для нескольких выбранных команд должен быть установлен этот бит разрешения. Если вы не запускали achmod
для начала, вам, вероятно, вообще не нужно это исправлять , все разрешения должны быть правильными. Не запускайте большуюchmod
операцию, не зная, какими должны быть все разрешения.источник
sudo chown -R root /usr/
?/usr
с LivdCD, вам нужно его где-то смонтировать и, скажем, идти по этому пути/mnt/mydrive/usr
. Затем вам нужно будет исправить бит setuid/mnt/mydrive/usr/bin/sudo
. Затем просмотрите / usr на livecd и посмотрите, есть ли другие владельцы, кроме root.find /usr -not -uid 0
и измените те, чтобы соответствовать. Затем найдите вещи, для которых установлены разные биты setuid или setgid, и убедитесь, что они тоже совпадают. Если у вас есть настоящая система Ubunutu для сравнения, это будет лучше всего.В режиме восстановления Ubuntu введите следующие команды. Это исправило проблему для меня ..
Надеюсь, что это решит вашу проблему. (Или чью-то еще)
Я нашел это здесь в этом сообщении в блоге .
источник
Это намного проще, чем предлагают другие ответы. Нет необходимости форматировать, перезагружать или использовать live CD.
Это самый простой способ исправить эту проблему. Пояснение: sudo поврежден (я знаю, что поврежденный - это неправильный термин, но он не работает, поэтому мы должны избегать использования sudo)
Я проверил этот метод на Linux Mint. Какая система похожа на Ubuntu. Дайте мне знать, что этот метод не работает на любой другой ОС. Буду обновлять ответ соответственно.
Благодарность
источник
su root
sudo
Это проще, чем делают люди. Попробуйте следующее:
su
команды, выйдите из системы под своим текущим пользователем и снова войдите в систему как пользователь root с помощью обычного диспетчера отображения (т.е. экрана входа в систему).chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Это должно исправить
sudo
команду и заставить вас снова начать работу в кратчайшие сроки.источник
Чтобы войти как root, без su или sudo, вы можете использовать pkexec:
Теперь измените права доступа к файлам:
источник