Как я могу добавить себя обратно как пользователь sudo?
Я сегодня установил Ubuntu 11.10, а затем установил VirtualBox. Это потребовало от меня добавления себя в группу vboxusers, и, поскольку у 11.10, похоже, больше нет графического приложения для добавления пользователей в группу, я выполнил следующую команду:
sudo usermod -G vboxusers stephane
Это проблема. Теперь я вижу, что я должен был запустить вместо этого:
sudo usermod -aG vboxusers stephane
Конечный результат - я больше не в группах, в которых я должен быть. Включая любую группу, необходимую для запуска "sudo". Теперь, когда я запускаю любую команду от имени sudo, я получаю следующее:
$ sudo ls
[sudo] password for stephane:
stephane is not in the sudoers file. This incident will be reported.
Есть ли способ исправить это, или мне нужно заново установить с нуля?
4 ответа
Во время загрузки нажмите и удерживайте левую клавишуShift, и вы должны увидеть меню GRUB.
Выберите запись, содержащую (режим восстановления) и подождите.
Теперь вам должно быть представлено меню. Выбрать:
remount Remount / read/write and mount all other file systems
и подождите, пока ваши файловые системы будут смонтированы с правами чтения / записи, затем нажмите Enter.
Если этот параметр не отображается или не работает, вы можете вместо этого выбрать
root
и используйте следующую команду для монтирования системного раздела:mount -o remount /
Вы можете проверить, какой ваш системный раздел с
fsck
команда или путем просмотра/etc/mtab
,После успешного запуска команды монтирования (т.е. без сообщений об ошибках) перейдите непосредственно к шагу 5 ниже.
После выбора
remount
Опция, меню появляется снова. Выбрать:root Drop to root shell prompt
Теперь введите одну из следующих команд, чтобы повторно добавить пользователя в
admin
группа (для Ubuntu 11.10 и более ранних версий):adduser <USERNAME> admin
или к
sudo
группа (для Ubuntu 12.04 и выше):adduser <USERNAME> sudo
Перезагрузитесь, и вы сможете использовать
sudo
снова.
Если в вашей системе включен root-доступ, просто перетащите терминал через Control+Alt+F1 без входа в X. Войдите в систему как root и затем просто добавьте нужного пользователя в admin
группа (для Ubuntu 11.10 и более ранних версий):
adduser desired_user_name admin
Для Ubuntu 12.04 и более поздних версий добавьте пользователя в sudo
группа:
adduser desired_user_name sudo
Если вы не включили root-вход, просто выберите режим восстановления в Grub, а затем попробуйте root shell.
Смонтируйте файловую систему как чтение-запись:
mount -o rw,remount /
После этого вы можете снова добавить желаемого пользователя в admin
(или же sudo
) группа.
Я попробовал различные комбинации после того, как сделал то же самое, что в меню перемонтирования, кажется, не в 12.10. Я попробовал все остальное в этом посте от root. Последний был
umount -a
mount -o -w /<path> /
Это привело к тому, что файловая система все еще находилась в состоянии ro из-за установки в fstab значения boot ro при ошибке файловой системы, я думаю, с указанием, что после монтирования она выглядит как ro.
Я наконец справился с этим
mount -o rw,remount /
Хотя я не уверен, насколько это отличается от предыдущего набора команд.
После применения этого варианта добавление пользователя в admin
(11.10 и выше) или sudo
(12.04 и позже) группа делается так же:
adduser username admin # 11.10 and earlier
adduser username sudo # 12.04 and later
Старый вопрос, но тоже случилось со мной (Ubuntu 14.04).
Мне не удалось войти в режим восстановления и получить доступ к корневой оболочке, как описывают многие ответы здесь и в других местах: доступ к корневой оболочке из GRUB, кажется, защищен паролем.
Поэтому я решил проблему следующим образом:
- загрузиться на живой USB-флешке
- открыть оболочку
- получить доступ к основной файловой системе HD Linux (ее точку монтирования можно найти в адресной строке проводника файлов GUI, обычно после CTRL-L).
cd
внутрь. - редактировать файл
etc/group
(скажем сnano etc/group
или что-нибудь еще) - найдите строку "sudo". Должно выглядеть
sudo:x:27:admin,bob,alice
- добавить себя в
sudo
строка, разделенная запятой
Конечно, это означает, что файл etc/sudoers
все еще держит линию
%sudo ALL=(ALL:ALL) ALL
это означает, что все члены группы sudo
иметь полный контроль. Сначала проверьте это.
Работал без происшествий.
Я сделал ту же ошибку, добавив свой аккаунт в группу (забыл -a
). У меня была установлена система с заблокированной учетной записью root, и моя учетная запись была единственной на компьютере.
Принятый ответ мне не помог. При загрузке в режиме восстановления все, что я получил, было бесполезным сообщением
Не удается открыть доступ к консоли, учетная запись root заблокирована. Для получения дополнительной информации см. Справочную страницу sulogin(8)
Нажмите ENTER, чтобы продолжить
После нажатия клавиши ENTER система загрузилась нормально: не повезло, получив root-доступ для решения проблемы. Я оставляю этот ответ на тот случай, если кто-то окажется на моем месте. Используйте следующее, только если вы не можете перейти в режим восстановления через меню Grub.
Прохождение для получения корневой оболочки:
- Загрузитесь в меню Grub и выделите (но не нажимайте Enter на!) Опцию обычной загрузки (по умолчанию, а не восстановления!).
- Нажмите
e
, Grub отобразит редактор командной строки с несколькими строками, каждая из которых может показаться незнакомой, если не пугающей. Не волнуйтесь, все сделанные вами изменения не сохраняются навсегда. - Найдите строку, которая читает
linux ... ro ...
, Это командная строка ядра. Заменитьro
знак сrw
, чтобы сделать корневую файловую систему доступной для чтения / записи и добавить другой параметр командной строки ядра,init=/bin/sh
, Это дает команду ядру выполнитьsh
вместо того/sbin/init
, В конце строка должна выглядеть такlinux ... rw init=/bin/sh ...
, Примечание: вы можете обойтись даже с голойgrub>
незамедлительный. Я буду рад объяснить, как шаг за шагом, если все остальное не сработает для вас; просто оставьте комментарий к этому ответу. - После изменения нажмите F10, чтобы использовать команды из редактора для загрузки системы (или прочитайте инструкции по загрузке прямо под окном редактора, если ваш Grub скомпилирован по-другому). Вы получите приглашение корневой оболочки, так как процесс init запускается как PID 1 с идентификатором root.
- Сделайте изменения, которые вы хотите сделать, например
usermod -a -Gadm,sudo YOURUSERID
, Подтвердите с помощьюid -a YOURUSERID
что вы вернули себе членство в sudo. Если вы получили ошибку "команда не найдена", используйте/sbin/usermod
а также/bin/id
, Вы не можете выключить или перезагрузить систему в этот момент.
reboot
,halt
илиpoweroff
не сработает, иexit
из оболочки приведет к панике ядра, так как процесс PID 1 не должен просто завершиться. Итак, следующие две команды, которые вы должны выполнить:sync exec /sbin/init
sync
на всякий случай, если что-то пойдет не так, чтобы сохранить все изменения на диске, иexec
заменить оболочку на настоящуюinit
(который может быть systemd, upstart или System V init, но он всегда называется/sbin/init
). Скорее всего, система продолжит загрузку в обычном режиме (без режима восстановления).- Войдите в систему и перезагрузите систему один раз, например
sudo reboot
- ты должен был вернуть свою привилегию sudo. Рекомендуется перезагрузка (хотя и очень редко)init
могут быть переданы дополнительные параметры при обычной загрузке, и этого мы не сделали. В случае, еслиexec
не удается, просто перезагрузите компьютер и дайте ему нормально загрузиться. Все современные файловые системы журналирования, такие как ext4, xfs и btrfs, быстро восстанавливаются (максимум несколько секунд для проверки журнала, еслиsync
перед сбросом), и все будет готово.
Немного фона
В отчете об ошибках Debian обсуждалась именно эта проблема, и, насколько я понимаю, это была определенная функция, а не ошибка, которую я считаю скорее ошибкой. Пробыв в этом бизнесе 25 лет, я не могу не согласиться с доводом Майкла Библа в сообщении № 31 в этой теме:
Учтите это: у вас есть ноутбук с заблокированной учетной записью root. По умолчанию загрузчик grub создает загрузочную запись для режима восстановления. Таким образом, даже если вы заблокируете биос, чтобы запретить загрузку с CD-Rom или USB, и вы защищаете паролем grub, кто-то может легко получить root-доступ, если вы оставите ноутбук на мгновение без присмотра.
Правильное ИМО, если не достаточно общее, возражение было дано в сообщении № 70 Фелипе Сателером:
Для многих (большинства?) Компьютеров физический доступ означает потерю игры в плане безопасности, поскольку вы можете просто разобрать коробку и получить жесткий диск.
Это особенно верно для ноутбука, упомянутого в аргументе Майкла: если вы оставите его без присмотра на мгновение, и кто-то будет следить за вашими данными, ноутбук просто исчезнет, и его больше никогда не увидят. И для любой машины, а не для "многих" или "большинства", даже для тех, кто врезается в стойку с 8 точками, как только злоумышленник получает физический доступ к машине, игра действительно заканчивается.