Как я могу добавить нового пользователя как sudoer с помощью командной строки?

820

После добавления пользователя с помощью adduserя не вижу его через Система> Администрирование> Пользователи и группы, пока я не выйду из системы, а затем снова войду в систему. Это нормально?

Кроме того, я могу установить нового добавленного пользователя как sudoer или я должен изменить это только после добавления его? Как я могу сделать это через оболочку?

Наконец, могу ли я удалить первоначального пользователя, который был создан при первоначальной установке Ubuntu, или этот пользователь как-то «особенный»?

Дэвид Б
источник

Ответы:

1024

Просто добавьте пользователя в sudoгруппу :

sudo adduser <username> sudo

Изменение вступит в силу при следующем входе пользователя в систему.

Это работает, потому что /etc/sudoersпредварительно настроен для предоставления разрешений всем членам этой группы (вам не нужно вносить в это какие-либо изменения):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Если у вас есть доступ к пользователю, входящему в те же группы, что и ваш «оригинальный» пользователь, вы можете удалить старого.


На самом деле, есть и другие группы, в которые должен войти ваш новый пользователь. Если вы установили тип учетной записи пользователя «Администратор» в настройках пользователя, он будет размещен по крайней мере во всех этих группах:

adm sudo lpadmin sambashare

Поскольку конфигурация вашей системы может отличаться, я предлагаю взглянуть на вывод, groups <username>чтобы увидеть, какие группы обычно используются.

ændrük
источник
1
@Dziamid Я не уверен, для чего sudoгруппа. Давайте разберемся.
Ондрюк,
7
Обратите внимание, что adminгруппа не существует в 12.04 LTS.
Райан
18
Вопрос касается существующего пользователя, но если бы это было для нового пользователя, «sudo adduser <username> sudo» должно предшествовать «sudo adduser <username>» . В противном случае вы получите сообщение об ошибке «Пользователь <username> не существует».
Питер Мортенсен
9
это не сработало для меня. все еще не могу использовать sudo.
Чови
10
Пришлось снова войти в систему, чтобы он заработал.
PeterM
193

я сделал

sudo usermod -a -G sudo <username>

как рекомендуется здесь .

Лешек
источник
28
группа sudo не существует
Аарон Исав,
Единственное рабочее решение здесь. Ubuntu 16
Макан Тайеби
5
Для существующего пользователя это правильное решение. Это должно быть помечено как ответ.
Yokai
3
Не забудьте -aпометить или вы удалите пользователя из всех групп, кромеsudo
RousseauAlexandre
@ РуссоАлександр абсолютно! самое важное, особенно если вы пытаетесь добавить себя в группу, не принадлежащую к sudo, и вы единственный на машине с привилегиями sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Откройте файл sudoers: sudo visudoоткроет /etc/sudoersфайл в редакторе, определенном в $EDITOR(вероятно, GNU nano - установите переменную, если она не та, которую вы хотите, например, export EDITOR="nano"и попробуйте sudo visudoснова).

Добавьте строку ниже в конец файла.

username ALL=(ALL) ALL   # Change the user name before you issue the commands

Затем выполните WriteOut с помощью Ctrl+ O. Редактор попросит вас указать имя файла для записи. По умолчанию будет временный файл, который используется visudoдля проверки синтаксических ошибок перед сохранением в фактический sudoersфайл. Нажмите, Enterчтобы принять его. Выйдите из редактора нано с помощью Ctrl+ X.

Готово!

Митхун Шридхаран
источник
9
Было бы нежелательно явно добавлять одного пользователя в файл sudoers вместо простого добавления этого пользователя в соответствующую группу sudo.
Kzqai
3
с помощью sudo visudo вы можете вывести файл в /etc/sudoers.tmp, при выходе из редактора он перезапишет / etc / sudoers сам по себе
Climbatize
1
и visudo проверит синтаксис, чтобы убедиться в отсутствии ошибок
mchid
синтаксическая ошибка при использовании этого.
Джерико
2
Другие решения прекрасно работают для ОС со встроенной sudoгруппой, но для случайной системы без выделенной sudoгруппы это решение работает. Единственная рекомендация, которую я имею, это то, что вы, возможно, захотите sudoне вводить себя в процедуру, поскольку она еще не установлена! Легко обойти, делая, su -а затем просто visudio. Это работает на Gentoo.
Tresf
30

Я должен добавить, что многие люди не понимают:

После того, как вы уже сделали a adduser "username", вы все равно можете вернуться и сделать a adduser "username" sudo, и он затем правильно добавит этого пользователя в группу.

Это на самом деле не будет работать в первый раз, как sudo adduser username sudo. Это даст вам ошибку. Что в итоге означает, что вы должны сначала создать учетную запись пользователя, прежде чем вы сможете добавить их в группу.

TaunT406
источник
11

Все участники группы admin, в Ubuntu по умолчанию разрешено использовать sudo, поэтому проще всего добавить учетную запись пользователя в adminгруппу.

Если вы не хотите предоставлять учетной записи пользователя полный root-доступ, вам нужно отредактировать файл / etc / sudoer с помощью visudo (он гарантирует, что у вас нет синтаксических ошибок в файле и вообще потеряет возможность sudo) что вы указываете, какие команды этот пользователь (или новая группа) может выполнять от имени пользователя root.

Руководство sudoer даст вам больше информации об этом. Вы можете указать, какие команды разрешены конкретному пользователю / группе для выполнения от имени пользователя root.

txwikinger
источник
1
Я думал, что это wheelбыло для чего группа?
Марко Чеппи
@ Марко Я не знаком с этим. Можете ли вы объяснить немного больше?
rndrük 15.10.10
@MarcoCeppi, группа колес использовалась в некоторых системах для ограничения возможностей пользователей su. Ubuntu использует sudoи группу администраторов.
Псуси
11

на CentOS я делаю как root

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
Джован Себастьян
источник
10

Следующий фрагмент предоставляет root-доступ к имени пользователя без явного входа в систему как root.

Убедитесь, что пользователь добавлен в группу sudo первым. Проверено на Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
источник
это работает на Ubuntu?
Джован Себастьян
1
Да, проверено на Ubuntu 16.04
Sandeep
3
почему не в одну строчку:useradd -m username --groups sudo
Эйдан Мелен