Пользователь отсутствует в файле sudoers. Об этом инциденте будет сообщено

24

Мне нужно установить пакет. Для этого мне нужен root-доступ. Однако система говорит, что я не в файле sudoers. При попытке отредактировать один, он жалуется одинаково! Как я могу добавить себя в файл sudoers, если у меня нет прав на его редактирование?

Я установил эту систему и только администратор. Что я могу сделать?

Изменить : я уже пробовал visudo. Это требует, чтобы я был в sudoers в первую очередь.

amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for amarzaya: 
amarzaya is not in the sudoers file.  This incident will be reported.
amarzaya@linux-debian-gnu:/$ 
Сергей Белозоров
источник
4
Ну очевидно user not(is) the sudoers file. (Опечатка в заголовке)
Hello71
8
Вы сейчас в непослушном списке - xkcd.com/838
Аарон Ньютон

Ответы:

18

Было бы что-то вроде дыры в безопасности, если бы вы могли добавить себя, /etc/sudoersне имея доступа sudo или root. В принципе, тогда любой мог сделать себя root.

По сути, вам нужно попросить администраторов этого компьютера добавить вас или установить пакет для вас в соответствии с политиками сайта.

Вы также должны обязательно использовать visudo для редактирования файла sudoers - он проверяет правильность синтаксиса перед записью файла. И вы можете использовать редакторы, кроме vi, с visudo. По умолчанию он будет использовать все, что вы установили, $EDITORи если у вас его нет, вы можете сделать

# EDITOR=nano visudo

вместо этого использовать редактор нано.

Хэмиш Даунер
источник
5
Я администратор, так как это моя машина, и я установил эту систему, но это не помогает :(
Сергей Белозоров
9
Если это ваша система, то вы должны были ввести пароль для пользователя root при установке. Так что войдите в систему как 'root', а затем выполните visudo.
Хэмиш Даунер
Верно. Моя вина. Я забыл, что я тогда ввел пароль во время установки.
Сергей Белозоров
24

Войдите в систему как root и используйте /usr/sbin/visudoдля редактирования файла и добавления вашего имени пользователя. Обычный vi / vim не сможет редактировать файл.

Самый простой способ - просто пойти вниз, пока не увидите строку " root ALL=(ALL) ALL", и добавить себя в нее с тем же синтаксисом ( yourusername ALL=(ALL) ALL). Или вы можете прочитать справочную страницу sudoers, если хотите дать себе более конкретные привилегии.

Ricket
источник
Это требует, чтобы я был в списке sudoers в первую очередь, чтобы запустить visudo. Я установил этот Debian, другого администратора нет.
Сергей Белозоров
Если вы вошли в систему как root, вам не нужно запускаться sudo visudo; просто беги /usr/sbin/visudo. Но, похоже, вы уже узнали об этом из комментариев другого ответа.
Рикет
не достаточно добавить соответствующего пользователя в группу "sudo" или "sudoers" (в зависимости от дистрибутива)? К сожалению, в моем случае это не сработало, но я могу поклясться, что раньше это работало ...?
Грегор
5

Просто набрал команду:

$ su

И попросил пароль "root". Набрал и бум ... Работало!

Эта проблема была моей ошибкой. В связи с тем, чтобы вернуться на объект в то время, когда я создал имя пользователя и пароль.

Карлос Трисотто
источник
Спасибо, что был действительно полезным и спас мой бекон! Но мне любопытно, почему простое добавление этой команды, а затем пароля root, позволило бы повысить привилегии ... скорее всего, это побеждает цель сообщения «Пользователь отсутствует в файле sudoers. Об этом инциденте будет сообщено»
Sol
1

Возможно, самый простой способ, если вы являетесь пользователем root, это:

echo 'amarzaya ALL=(ALL) ALL' >> /etc/sudoers

источник
7
Вы должны обязательно использовать visudo для редактирования файла sudoers, а не редактировать его напрямую или выводить на него текст. Это обеспечит синтаксическую корректность и не позволит вам заблокировать доступ или предоставить кому-либо неправильный доступ.
подкастинг
1

Если ваш файл sudoers уже содержит такую ​​строку

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Тогда, возможно, самый чистый способ сделать это - предоставить adminгруппу своему пользователю. Например, чтобы добавить пользователя оракула в admin группу :

usermod -aG admin oracle
Ален Паннетье
источник
Это то, что я искал. Для меня самое чистое, без проблем с файлом sudoers.
webjunkie
1
Правильная командаusermod -g oracle admin
kvanberendonck
-1: синтаксис есть usermod -g $group $user. Вы, наверное, думаете о adduserсинтаксисе, который есть adduser $user $group.
Blacklight Shining
1
... на самом деле, вы, скорее всего, захотите usermod -aG $group $user. -gустанавливает основную группу пользователя на указанную вами, и -Gбез него -aудалит пользователя из групп, которых нет в списке. -gтакже изменит владельца группы всех файлов, принадлежащих предыдущей группе в домашнем каталоге пользователя. Так что, если вы похожи на меня, и у вас настроен ваш маск 007
Blacklight Shining
1
@BlacklightShining. Вы правы. Неправильный синтаксис был предложен предыдущим комментатором, и, поскольку oracleон часто является группой, действительно, есть место для путаницы. Я не должен был "исправить".
Ален Паннетье
-1

Если вы все еще можете получить root-доступ su, используя эту однострочную строку, добавьте себя в /etc/sudoers/:

su -c 'echo $USER ALL=(ALL)ALL >> /etc/sudoers'

Чтобы активировать изменения, выйдите и снова. Например, завершите сеанс X или выйдите из командной строки exit.

Бенгт
источник
-1: см . Комментарий pkaeding .
Blacklight Shining
-1

Если вы не можете использовать sudoкоманду, то вы можете использовать следующий метод:

  1. Нажмите Ctrl+ Alt+F1
  2. Выйдите из системы, если пользователь не является пользователем root
  3. Войдите в систему как root
  4. Используйте права root
  5. Выйти ( exit) - Ctrl+ Alt+, F7чтобы попасть в графический интерфейс
user3113604
источник
-1: это работает только в некоторых локальных средах, которые на самом деле имеют графический интерфейс.
Blacklight Shining
-1

Все , что вам нужно , это добавить комментарий <username>к whellгруппе.

# usermod -aG whell username

Тогда войдите под своим именем пользователя и наслаждайтесь :)

EFernandes
источник
-3

Сначала войдите, используя следующее:

$ su

Тогда продолжайте:

$ sudo apt-get update

или как обычно

Аластер
источник
1
тебе не нужно su- это делает sudo.
Саймон Шихан
Они не совсем одно и то же. sudo это «сделать как супер пользователь», но вы входите с паролем своего пользователя. su - «переключить пользователя», и по умолчанию (без аргументов) он пытается переключиться на пользователя root, в этом случае вам нужно ввести пароль root. Но вы также правы - использование sudo после su является избыточным, поскольку вы уже являетесь пользователем root.
Аарон Ньютон
@ aaron.newton Я бы на самом деле читал его как Switch User и DO; Вы можете выбрать любого пользователя для запуска команды, как с -uфлагом. Это в основном используется для корня, но так su.
Blacklight Shining
@ aaron.newton Я бы на самом деле читал его как Switch User и DO; Вы можете выбрать любого пользователя для запуска команды, как с -uфлагом. Это в основном используется для корня, но так su.
Blacklight Shining