Пользователь в группе sudo не может использовать команду sudo

14

У меня есть пользователь, supersecretuserкоторый находится в sudoгруппе, но не имеет sudoдоступа. Есть ли что-то еще, что нужно сделать, чтобы предоставить этому пользователю sudoдоступ?

$ ssh supersecretuser@myserver
supersecretuser@myserver:~$ groups
supersecretuser adm cdrom sudo dip plugdev lpadmin sambashare
supersecretuser@myserver:~$ sudo vim install.sh 
[sudo] password for supersecretuser: 
supersecretuser is not in the sudoers file.  This incident will be reported.

supersecretuser пользователь, которого мы настраиваем при установке Ubuntu.

Джей Митчелл
источник
4
Возможно , supersecretuserвыйти из системы и обратно (или , по крайней мере , начать новый логин оболочки , например su - supersecretuser) , поскольку добавляется к sudoгруппе?
стальная отвертка
Когда я ssh в as supersecretuser, я вижу, что это в sudoгруппе. Есть ли что-то еще, что мне нужно сделать, чтобы выйти? Добавлен SSH в сервер на вопрос.
Джей Митчелл
Если у вас есть другой суперпользователь, я бы попытался снова добавить suspersecretuserв sudoгруппу. sudo adduser supersecretuser sudo, Вы можете получить ошибку как user is already in group sudo, но это стоит попробовать.
Дэн

Ответы:

8

Так как в вашем сообщении об ошибке говорится, что ваш пользователь is not in the sudoers file, пожалуйста, проверьте ваш /etc/sudoersфайл, посмотрите, есть ли такая строка:

%sudo   ALL=(ALL:ALL) ALL

Если эта строка отсутствует, пользователи в sudoгруппе не будут sudoers. Отредактируйте файл с помощью visudoкоманды (проверяет правильность синтаксиса и блокирует файл).

Вы также можете попробовать добавить настраиваемую строку, например:

root    ALL=(ALL:ALL) ALL

Замените rootсвое имя пользователя, перезагрузите компьютер и попробуйте, если он работает.

bfrgzju
источник
Я не могу sudoувидеть этот файл, чтобы сказать, что это 100% проблема. Однако, основываясь на нашем сценарии chef, который мы используем на других серверах, я вижу, что мы не добавляем supersecretuserпользователя /etc/sudoers.
Джей Митчелл
Большое спасибо за ответ, у меня был sudoи adminзаписи, но они не были с префиксом %.
Березовский
6

Что касается вашего разговора с @steeldriver в комментариях, я предполагаю, что ваш пользователь не вышел из системы.

Самый простой способ убедиться, что он вышел supersecretuserиз системы, - это ввести в терминале другого пользователя who.

При этом я получаю вывод, как это:

mitch@quartz:~$ who
mitch    :0           2014-09-08 09:49 (:0)
mitch    pts/0        2014-09-08 13:18 (:0.0)

Я вижу только себя. Аналогично, ввод wв терминал показывает, кто все вошел в систему и что они делают:

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
mitch    :0       :0               09:49   ?xdm?  29:08   0.11s init --user
mitch    pts/0    :0.0             13:18    5.00s  0.06s  0.01s w

Вы можете ОСТАНОВИТЬ другого пользователя (я его назову SSU) с помощью следующей команды:

pkill -STOP -u SSU

Однако, честно говоря, самым простым решением было бы просто перезагрузить систему, если это возможно.

Митч
источник
Перезагрузил сервер, и у меня нет sudoдоступа.
Джей Митчелл
Таким образом, вы потеряли возможность для вашего пользователя SSH на сервер?
Митч
Извините, обновленный комментарий. Может все равно по ssh на сервер, просто нет sudoдоступа.
Джей Митчелл
Можете ли вы обновить исходную запись с помощью метода, который вы использовали для предоставления пользователю доступа sudo?
Митч
supersecretuserпользователь, которого мы настраиваем при установке Ubuntu.
Джей Митчелл
0

Самый простой способ добавить supersecretuser в группу sufo - это sudo gpasswd -a supersecretuser sudoсделать так, чтобы supersecretuser вышел из системы / снова вошел в нее ; но если вы потеряли способность sudo, боюсь, вам придется переустанавливать.

Толга Озсес
источник
-1

После того, как вы проверите, что права доступа к файлам правильны:

-r--r----- 1 root root x x x x:x /etc/sudoers

Скорее всего, вы потеряли s-bit в исполняемом файле, он должен выглядеть так:

-rwsr-xr-x 2 root root x x x  x /usr/bin/sudo

если нет: с правами root

chmod u+s /usr/bin/sudo

и вы должны быть в порядке .. если вы не знаете, что вы изменили sudoersфайл самостоятельно! :)

greenfrog
источник
3
-1 Проблемы с правами доступа к файлу sudoдвоичного файла и sudoersконфигурации приводят к сообщениям об ошибках, отличным от тех, которые указаны в вопросе. Они буквально ссылаются на несоответствующие права доступа к файлу.
Дэвид Фёрстер