Як я можу додати нового користувача як sudoer за допомогою командного рядка?


819

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

Також чи можу я встановити нещодавно доданого користувача як sudoпомилку чи потрібно змінити це лише після його додавання? Як я можу це зробити через оболонку?

Нарешті, чи можу я видалити початкового користувача, створеного при первинній установці Ubuntu, чи цей користувач якимось чином "особливий"?

Відповіді:


1023

Просто додайте користувача до 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>щоб побачити, які групи зазвичай використовуються.


1
@Dziamid Я не впевнений, для чого sudoгрупа. Давай дізнаємось.
ændrük

7
Зверніть увагу, що adminгрупи не існує в 12.04 LTS.
Райан

18
Питання стосується вже наявного користувача, але якби це було для нового користувача, "sudo adduser <username> sudo" повинен був передувати "sudo adduser <username>" . В іншому випадку вийде повідомлення про помилку "Користувача <ім'я користувача> не існує".
Пітер Мортенсен

9
це не спрацювало для мене. досі не може використовувати судо.
chovy

10
Довелося знову увійти, щоб він працював.
PeterM

193

я робив

sudo usermod -a -G sudo <username>

як тут рекомендовано .


28
групового судо не існує
Аарон Ісав

Тут єдине робоче рішення. Ubuntu 16
Makan Tayebi

5
Для існуючого користувача це правильне рішення. Це слід позначити як відповідь.
Йокай

3
Не забудьте -aпрапор, або ви видалите користувача з усіх груп, крімsudo
RousseauAlexandre

@RousseauAlexandre абсолютно! найголовніше, особливо якщо ви намагаєтесь додати себе до групи, що не користується судо, і ви єдиний на машині з привілеями судо ...without -a you just removed yourself from the sudo group!
Тімоті Л.Я. Стюарт

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

синтаксична помилка при використанні цього.
jheriko

2
Інші рішення чудово працюють для ОС з вбудованою sudoгрупою, але для випадкових систем без виділеної sudoгрупи це рішення працює. Єдина рекомендація, яку я маю - це ви, можливо, захочете не уникати sudoсебе всередині процедури, оскільки це, можливо, ще не налаштовано! Легко вирішити, виконавши, su -а потім просто visudio. Це працює на Gentoo.
tresf

30

Я мушу додати, що я впевнений, що багато людей не розуміють:

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

Він насправді не спрацює з першого разу, як sudo adduser username sudo. Це дасть вам помилку. Що підсумовує підсумок означає, що спочатку потрібно створити обліковий запис користувача, перш ніж ви зможете додати його до групи.


11

Усі члени групи admin, які перебувають в Ubuntu, за замовчуванням дозволяють використовувати sudo, тому найпростішим способом є додавання облікового запису користувача до adminгрупи.

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

Посібник з судора дасть вам більше інформації про це. Ви можете вказати, які команди дозволено певному користувачеві / групі виконувати як root.


1
Я думав, що це wheelбуло для групи?
Марко Чеппі

@Marco Я з цим не знайомий. Чи можете ви пояснити трохи більше?
ændrük

@MarcoCeppi, група коліс використовувалася в деяких системах для обмеження того, що користувачі можуть використовувати su. Ubuntu використовує sudoі групу адміністратора.
psusi


10

У наведеному нижче фрагменті надається кореневий доступ до імені користувача без явного входу в систему як корінь.

Переконайтеся, що спочатку користувача додано до групи судо. Тестовано на Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"

це працює на Ubuntu?
jowan sebastian

1
Так, зареєстровано на Ubuntu 16.04
Sandeep

3
чому б не в одному рядку:useradd -m username --groups sudo
Айдан Мелен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.