Сегодня я установил 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.
Есть ли способ исправить это или мне нужно переустановить заново с нуля?
Во время загрузки нажмите и удерживайте клавишу влево Shift, после чего должно появиться меню GRUB.
Выберите запись, содержащую ( режим восстановления ) и подождите.
Теперь у вас должно появиться меню. Выберите:
remount Remount / read/write and mount all other file systems (Удалить / прочитать/записать и смонтировать все остальные файловые системы).
и подождите, пока ваши файловые системы будут смонтированы с разрешениями на чтение/запись, затем нажмите Enter.
Если эта опция не появляется или не работает, вместо этого выберите опцию root
и используйте следующую команду для монтирования системного раздела:
mount -o remount / remount /
С помощью команды fsck
или просмотра /etc/mtab
можно проверить, какой системный раздел является Вашим.
После успешного выполнения команды монтирования (т.е. без сообщений об ошибках) перейдите непосредственно к шагу 5 ниже.
После выбора опции remount
снова откроется меню. Выберите:
root Drop to root shell prompt
Теперь введите одну из следующих команд для повторного добавления пользователя в группу admin
(для Ubuntu 11.10 и более ранних версий):
adduser admin
или в группу sudo
(для Ubuntu 12.04 и более поздних):
adduser sudo
Перезагрузитесь, и вы снова сможете использовать sudo
.
Если в вашей системе включен вход с правами root, просто отключите терминал с помощью Control + Alt + F1 без входа в X Войдите в систему как root, а затем просто добавьте желаемого пользователя в группу admin
(для Ubuntu 11.10 и более ранних версий):
adduser desired_user_name admin
Для Ubuntu 12.04 и более поздних версий добавьте пользователя в sudo
group:
adduser desired_user_name sudo
Если вы не включили вход в систему root, просто выберите режим восстановления в Grub и затем попробуйте использовать корневую оболочку.
Смонтируйте файловую систему как чтение-запись:
mount -o rw,remount /
После этого вы снова можете добавить желаемого пользователя в группа admin
(или sudo
).
Я пробовал различные комбинации после того, как проделал то же самое, что и пункт меню «Перемонтировать», которого нет в 12.10. Я пробовал все остальное в этом посте от root. Последним было
umount -a
mount -o -w /<path> /
. Это привело к тому, что файловая система все еще была ro из-за настройки в fstab для загрузки 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 похоже, защищен паролем.
Итак, я решил проблему следующим образом:
cd
в него. etc / group
(скажем, с помощью nano etc / group
или что-нибудь еще) sudo: x: 27: admin, bob, alice
sudo
через запятую Конечно, это означает, что файл и т. Д. / sudoers
по-прежнему содержит строку
%sudo ALL=(ALL:ALL) ALL
, означающую, что все члены группы sudo
имеют полный контроль. Сначала проверьте это.
Сработало без происшествий.
Я сделал ту же ошибку, добавляя свою учетную запись в группу (забыл -a
). Моя система была установлена с заблокированным входом root, и моя учетная запись была единственной на машине.
Принятый ответ мне не помог. При загрузке в режим восстановления все, что я получил, это бесполезное сообщение
Невозможно открыть доступ к консоли, учетная запись root заблокирована. Видеть Справочная страница sulogin (8) для более подробной информации
Для продолжения нажмите ENTER
После нажатия ENTER система загрузилась нормально: не удалось получить root-доступ для решения проблемы. Я оставляю этот ответ на тот случай, если к этому моменту кто-то окажется на моем месте. Используйте следующий , только если вы не можете перейти в режим восстановления через меню Grub .
e
. Grub отобразит редактор командной строки с несколькими строками, каждая из которых может показаться незнакомой, если не пугающей. Не волнуйтесь, любые сделанные вами изменения не сохраняются навсегда. linux ... ro ...
. Это командная строка ядра. Замените токен ro
на rw
, чтобы сделать корневую файловую систему доступной для чтения / записи, и добавьте еще один параметр командной строки ядра, init = / bin / sh
. Это указывает ядру выполнить sh
вместо / sbin / init
. В итоге строка должна иметь вид linux ... rw init = / bin / sh ...
. Примечание: Вы можете обойтись даже простым приглашением grub>
. Я с удовольствием объясню, как, шаг за шагом, если все остальное вам не поможет; просто оставьте комментарий к этому ответу. 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
ed перед сбросом), и все будет в порядке. В отчете об ошибке Debian было обсуждение этой самой проблемы, и, насколько я понимаю, это было решено как особенность, а не ошибка, которую я считаю скорее ошибка. Проработав в этом бизнесе 25 лет, я не могу не согласиться с аргументом Майкла Библа в сообщении № 31 в этой ветке:
Подумайте над этим: у вас есть ноутбук с заблокированной учетной записью root. По умолчанию загрузчик grub создает загрузочную запись для режима восстановления. Таким образом, даже если вы заблокируете BIOS, чтобы не разрешать загрузку с CD-Rom или USB, и вы защищаете паролем grub, кто-то может легко получить root-доступ если вы оставите ноутбук на мгновение без присмотра.
Правильное возражение, IMO, если не достаточно общее, было дано в сообщении № 70 Фелипе Сателером:
Для многих (большинства?) компьютеров , физический доступ означает, что игра проиграна с точки зрения безопасности, так как вы можете просто разобрать коробку и получить
Это особенно верно для портативного компьютера, упомянутого в аргументе Майкла: если вы оставите его на мгновение без присмотра, и кто-то будет искать ваши данные, ноутбук просто исчезнет и никогда больше его не увидят. И для любой машины, а не «многих» или «большинства», даже тех, которые закреплены на 8 точках в стойке, как только злоумышленник получает физический доступ к машине, игра действительно заканчивается.