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

Есть ли способ исправить это или мне нужно переустановить заново с нуля?

65
задан 29 August 2014 в 07:43

5 ответов

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

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

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

    remount Remount / read/write and mount all other file systems (Удалить / прочитать/записать и смонтировать все остальные файловые системы). 
    

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

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

     mount -o remount / remount /
    

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

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

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

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

    adduser  admin
    

    или в группу sudo (для Ubuntu 12.04 и более поздних):

    adduser  sudo
    
  6. Перезагрузитесь, и вы снова сможете использовать sudo.

66
ответ дан 29 August 2014 в 07:43

Если в вашей системе включен вход с правами 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 и затем попробуйте использовать корневую оболочку.

Root Shell

Смонтируйте файловую систему как чтение-запись:

mount -o rw,remount /

После этого вы снова можете добавить желаемого пользователя в группа admin (или sudo ).

15
ответ дан 29 August 2014 в 07:43

Я пробовал различные комбинации после того, как проделал то же самое, что и пункт меню «Перемонтировать», которого нет в 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
7
ответ дан 29 August 2014 в 07:43

Старый вопрос, но тоже случился со мной (Ubuntu 14.04).

Мне не удалось войти в режим восстановления и получить доступ к корневой оболочке, как описано во многих ответах здесь и в других местах: доступ к корневой оболочке из GRUB похоже, защищен паролем.

Итак, я решил проблему следующим образом:

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

Конечно, это означает, что файл и т. Д. / sudoers по-прежнему содержит строку

%sudo   ALL=(ALL:ALL) ALL

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

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

3
ответ дан 29 August 2014 в 07:43

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

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

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

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

Пошаговое руководство для получения корневой оболочки:

  1. Загрузитесь в меню Grub и выделите (но не нажмите Введите в!) нормальном (по умолчанию, не для восстановления!) параметре загрузки.
  2. Нажмите e . Grub отобразит редактор командной строки с несколькими строками, каждая из которых может показаться незнакомой, если не пугающей. Не волнуйтесь, любые сделанные вами изменения не сохраняются навсегда.
  3. Найдите строку, которая читает linux ... ro ... . Это командная строка ядра. Замените токен ro на rw , чтобы сделать корневую файловую систему доступной для чтения / записи, и добавьте еще один параметр командной строки ядра, init = / bin / sh . Это указывает ядру выполнить sh вместо / sbin / init . В итоге строка должна иметь вид linux ... rw init = / bin / sh ... . Примечание: Вы можете обойтись даже простым приглашением grub> . Я с удовольствием объясню, как, шаг за шагом, если все остальное вам не поможет; просто оставьте комментарий к этому ответу.
  4. После изменения нажмите F10 , чтобы использовать команды редактора для загрузки системы (или прочтите инструкции по загрузке прямо под окном редактора, если ваш Grub компилируется иначе). Вы получите приглашение оболочки root, так как процесс инициализации работает как PID 1.
  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. Войдите в систему и перезагрузите систему один раз, e. г. sudo reboot - вы должны были вернуть свои привилегии sudo. Рекомендуется перезагрузка, так как (хотя и очень редко) init могут передавать дополнительные параметры во время нормальной загрузки, а мы этого не делали. В случае сбоя exec просто перезагрузите машину и дайте ей нормально загрузиться. Все современные журналируемые файловые системы, такие как ext4, xfs и btrfs, быстро восстанавливаются (максимум несколько секунд для проверки журнала, если sync ed перед сбросом), и все будет в порядке.

A немного предыстории

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

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

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

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

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

1
ответ дан 22 November 2019 в 23:34

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

Похожие вопросы: