Я сегодня установил 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.
Есть ли способ исправить это, или мне нужно заново установить с нуля?
источник
mount -o remount,rw /
.reboot -f
.Если в вашей системе включен root-доступ, просто перетяните терминал через Control+ Alt+ F1без входа в X. Войдите в систему как root, а затем просто добавьте нужного пользователя в
admin
группу (для Ubuntu 11.10 и более ранних версий):Для Ubuntu 12.04 и более поздних версий добавьте пользователя в
sudo
группу:Если вы не включили root-вход, просто выберите режим восстановления в Grub, а затем попробуйте root shell.
Смонтируйте файловую систему как чтение-запись:
После этого вы можете снова добавить нужного пользователя в
admin
(илиsudo
) группу.источник
Я пробовал различные комбинации после того, как сделал то же самое, что в меню перемонтирования, кажется, не в 12.10. Я попробовал все остальное в этом посте от root. Последний был
Это привело к тому, что файловая система все еще находилась в состоянии ro из-за установки в fstab значения ro для загрузки при ошибке файловой системы, я думаю, с указанием, что после монтирования она выглядит как ro .
Я наконец справился с этим
Хотя я не уверен, насколько это отличается от предыдущего набора команд.
После применения этого варианта добавление пользователя в группу
admin
(11.10 и ealrier) илиsudo
(12.04 и более поздние версии) выполняется аналогичным образом:источник
Старый вопрос, но тоже случилось со мной (Ubuntu 14.04).
Мне не удалось войти в режим восстановления и получить доступ к корневой оболочке, как описывают многие ответы здесь и в других местах: доступ к корневой оболочке из GRUB, кажется, защищен паролем.
Поэтому я решил проблему следующим образом:
cd
внутрь.etc/group
(скажем, с помощьюnano etc/group
чего-либо еще)sudo:x:27:admin,bob,alice
sudo
строку, разделив запятуюКонечно, это означает, что файл
etc/sudoers
все еще содержит строкуЭто означает, что все члены группы
sudo
имеют полный контроль. Сначала проверьте это.Работал без происшествий.
источник
Я сделал ту же ошибку, добавив свой аккаунт в группу (забыл
-a
). У меня была установлена система с заблокированной учетной записью root, и моя учетная запись была единственной на компьютере.Принятый ответ мне не помог. При загрузке в режиме восстановления все, что я получил, было бесполезным сообщением
После нажатия клавиши 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
заменить оболочку реальнойinit
(которая может быть systemd, upstart или System V init, но она всегда вызывается/sbin/init
). Скорее всего, система продолжит загрузку в обычном режиме (без режима восстановления).sudo reboot
вы должны были получить обратно привилегию sudo. Рекомендуется перезагрузка, поскольку (хотя и очень редко)init
могут передаваться дополнительные параметры при обычной загрузке, а мы этого не делали. В случаеexec
сбоя просто перезагрузите компьютер и дайте ему нормально загрузиться. Все современные файловые системы журналирования, такие как ext4, xfs и btrfs, быстро восстанавливаются (максимум несколько секунд для проверки журнала, еслиsync
редактируется до сброса), и все будет готово.Немного фона
В отчете об ошибках Debian обсуждалась именно эта проблема, и, насколько я понимаю, это была определенная функция, а не ошибка, которую я считаю скорее ошибкой. Пробыв в этом бизнесе 25 лет, я не могу не согласиться с доводом Майкла Библа в сообщении № 31 в этой теме:
Правильное ИМО, если не достаточно общее, возражение было дано в сообщении № 70 Фелипе Сателером:
Это особенно верно для ноутбука, упомянутого в аргументе Майкла: если вы оставите его без присмотра на мгновение, а кто-то ищет ваши данные, ноутбук просто исчезнет, и его больше никогда не увидят. И для любой машины, а не для «многих» или «большинства», даже для тех, кто врезается в стойку с 8 точками, как только злоумышленник получает физический доступ к машине, игра действительно заканчивается.
источник