Как я могу добавить себя обратно как пользователь 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 ответа

Решение
  1. Во время загрузки нажмите и удерживайте левую клавишуShift, и вы должны увидеть меню GRUB.

  2. Выберите запись, содержащую (режим восстановления) и подождите.

  3. Теперь вам должно быть представлено меню. Выбрать:

    remount    Remount / read/write and mount all other file systems 
    

    и подождите, пока ваши файловые системы будут смонтированы с правами чтения / записи, затем нажмите Enter.

    Если этот параметр не отображается или не работает, вы можете вместо этого выбрать root и используйте следующую команду для монтирования системного раздела:

    mount -o remount /
    

    Вы можете проверить, какой ваш системный раздел с fsck команда или путем просмотра /etc/mtab,

    После успешного запуска команды монтирования (т.е. без сообщений об ошибках) перейдите непосредственно к шагу 5 ниже.

  4. После выбора remount Опция, меню появляется снова. Выбрать:

    root       Drop to root shell prompt
    
  5. Теперь введите одну из следующих команд, чтобы повторно добавить пользователя в admin группа (для Ubuntu 11.10 и более ранних версий):

    adduser <USERNAME> admin
    

    или к sudo группа (для Ubuntu 12.04 и выше):

    adduser <USERNAME> sudo
    
  6. Перезагрузитесь, и вы сможете использовать 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.

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, кажется, защищен паролем.

Поэтому я решил проблему следующим образом:

  1. загрузиться на живой USB-флешке
  2. открыть оболочку
  3. получить доступ к основной файловой системе HD Linux (ее точку монтирования можно найти в адресной строке проводника файлов GUI, обычно после CTRL-L). cd внутрь.
  4. редактировать файл etc/group (скажем с nano etc/group или что-нибудь еще)
  5. найдите строку "sudo". Должно выглядеть sudo:x:27:admin,bob,alice
  6. добавить себя в sudo строка, разделенная запятой

Конечно, это означает, что файл etc/sudoers все еще держит линию

%sudo   ALL=(ALL:ALL) ALL

это означает, что все члены группы sudo иметь полный контроль. Сначала проверьте это.

Работал без происшествий.

Я сделал ту же ошибку, добавив свой аккаунт в группу (забыл -a). У меня была установлена ​​система с заблокированной учетной записью root, и моя учетная запись была единственной на компьютере.

Принятый ответ мне не помог. При загрузке в режиме восстановления все, что я получил, было бесполезным сообщением

Не удается открыть доступ к консоли, учетная запись root заблокирована. Для получения дополнительной информации см. Справочную страницу sulogin(8)
Нажмите ENTER, чтобы продолжить

После нажатия клавиши ENTER система загрузилась нормально: не повезло, получив root-доступ для решения проблемы. Я оставляю этот ответ на тот случай, если кто-то окажется на моем месте. Используйте следующее, только если вы не можете перейти в режим восстановления через меню Grub.

Прохождение для получения корневой оболочки:

  1. Загрузитесь в меню Grub и выделите (но не нажимайте Enter на!) Опцию обычной загрузки (по умолчанию, а не восстановления!).
  2. Нажмите e, Grub отобразит редактор командной строки с несколькими строками, каждая из которых может показаться незнакомой, если не пугающей. Не волнуйтесь, все сделанные вами изменения не сохраняются навсегда.
  3. Найдите строку, которая читает linux ... ro ..., Это командная строка ядра. Заменить ro знак с rw, чтобы сделать корневую файловую систему доступной для чтения / записи и добавить другой параметр командной строки ядра, init=/bin/sh, Это дает команду ядру выполнить sh вместо того /sbin/init, В конце строка должна выглядеть так linux ... rw init=/bin/sh ..., Примечание: вы можете обойтись даже с голой grub> незамедлительный. Я буду рад объяснить, как шаг за шагом, если все остальное не сработает для вас; просто оставьте комментарий к этому ответу.
  4. После изменения нажмите F10, чтобы использовать команды из редактора для загрузки системы (или прочитайте инструкции по загрузке прямо под окном редактора, если ваш Grub скомпилирован по-другому). Вы получите приглашение корневой оболочки, так как процесс init запускается как PID 1 с идентификатором root.
  5. Сделайте изменения, которые вы хотите сделать, например usermod -a -Gadm,sudo YOURUSERID, Подтвердите с помощью id -a YOURUSERID что вы вернули себе членство в sudo. Если вы получили ошибку "команда не найдена", используйте /sbin/usermod а также /bin/id,
  6. Вы не можете выключить или перезагрузить систему в этот момент. reboot, halt или poweroff не сработает, и exit из оболочки приведет к панике ядра, так как процесс PID 1 не должен просто завершиться. Итак, следующие две команды, которые вы должны выполнить:

    sync
    exec /sbin/init
    

    sync на всякий случай, если что-то пойдет не так, чтобы сохранить все изменения на диске, и exec заменить оболочку на настоящую init (который может быть systemd, upstart или System V init, но он всегда называется /sbin/init). Скорее всего, система продолжит загрузку в обычном режиме (без режима восстановления).

  7. Войдите в систему и перезагрузите систему один раз, например sudo reboot- ты должен был вернуть свою привилегию sudo. Рекомендуется перезагрузка (хотя и очень редко) init могут быть переданы дополнительные параметры при обычной загрузке, и этого мы не сделали. В случае, если exec не удается, просто перезагрузите компьютер и дайте ему нормально загрузиться. Все современные файловые системы журналирования, такие как ext4, xfs и btrfs, быстро восстанавливаются (максимум несколько секунд для проверки журнала, если sync перед сбросом), и все будет готово.

Немного фона

В отчете об ошибках Debian обсуждалась именно эта проблема, и, насколько я понимаю, это была определенная функция, а не ошибка, которую я считаю скорее ошибкой. Пробыв в этом бизнесе 25 лет, я не могу не согласиться с доводом Майкла Библа в сообщении № 31 в этой теме:

Учтите это: у вас есть ноутбук с заблокированной учетной записью root. По умолчанию загрузчик grub создает загрузочную запись для режима восстановления. Таким образом, даже если вы заблокируете биос, чтобы запретить загрузку с CD-Rom или USB, и вы защищаете паролем grub, кто-то может легко получить root-доступ, если вы оставите ноутбук на мгновение без присмотра.

Правильное ИМО, если не достаточно общее, возражение было дано в сообщении № 70 Фелипе Сателером:

Для многих (большинства?) Компьютеров физический доступ означает потерю игры в плане безопасности, поскольку вы можете просто разобрать коробку и получить жесткий диск.

Это особенно верно для ноутбука, упомянутого в аргументе Майкла: если вы оставите его без присмотра на мгновение, и кто-то будет следить за вашими данными, ноутбук просто исчезнет, ​​и его больше никогда не увидят. И для любой машины, а не для "многих" или "большинства", даже для тех, кто врезается в стойку с 8 точками, как только злоумышленник получает физический доступ к машине, игра действительно заканчивается.

Другие вопросы по тегам