Отключить разрешение sudo для пользователя из командной строки

16

Я активировал пользователя root в ubuntu и хочу использовать ubuntu как сервер без DE. Для этого я хочу отключить привилегию sudo, предоставленную первому пользователю. Как это сделать из командной строки? Я знаю, что могу использовать графический интерфейс, но как это сделать из командной строки?     

задан sagarchalise 25.05.2011 в 05:50
источник

3 ответа

13

У данного пользователя есть привилегии sudo, поскольку он находится в группе admin . Как прокомментировал wojox, вы можете использовать visudo и удалить привилегии sudo из группы admin, но это приведет к удалению возможностей sudo из all членов группы администрирования, а не только одного пользователя.

Кроме того, вы можете удалить пользователя из группы admin. Если ориентированный на экран vi считается достаточным для командной строки, запустите vigr и удалите имя пользователя из соответствующей строки.

Для «чистого» решения командной строки попробуйте gpasswd , поскольку он управляет / etc / group и может добавлять и удалять пользователей из групп.

[email protected]:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
[email protected]:~# gpasswd -d username admin
Removing user username from group admin

[email protected]:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
[email protected]:~# gpasswd -a username admin
Adding user username to group admin
[email protected]:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

Ниже мой первый ответ, прежде чем я понял, что существует менее тупой способ сделать это.

Если вам нужен более сложный способ сделать это, вы можете использовать usermod .

Вот цитата из страницы usermod man:

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of.
    Each group is separated from the next by a comma, with no intervening
    whitespace. The groups are subject to the same restrictions as the
    group given with the -g option.

    If the user is currently a member of a group which is not listed, the
    user will be removed from the group. This behaviour can be changed via
    the -a option, which appends the user to the current supplementary group
    list.

Итак, вы должны указать все группы для пользователя, кроме admin .

[email protected]:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

[email protected]:~# usermod -G 4,20,24,46,111,122 username

[email protected]:~# id username
uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),122(sambashare)

Наконец, это нарушает дух вопроса, но можно набрать users-admin из командной строки, чтобы изменить пользователей и группы.

    
ответ дан Bribles 25.05.2011 в 06:52
источник
2

Какую бы мудрость ни находили в приведенных выше ответах, я решил проблему включения учетной записи root и отключения sudo для указанного пользователя следующим образом.

Сначала включите учетную запись root:

$ sudo passwd root

Подробнее в Документация Ubuntu .

Тогда:

  • стать root
  • , а затем отредактируйте файл / etc / group
  • снова пользователь снова проверит изменения.

То есть:

$ su
# cp /etc/group /etc/group.bak
# nano /etc/group               # find a line like 'sudo:x:27:guest', remove the
                                # user name (i.c. 'guest') and save the file
# exit,
$ [try any sudo command]

Пользователь «гость» теперь удален из файла sudoers. Если все пошло хорошо, любая команда sudo должна вернуть сообщение вроде этого:

guest is not in the sudoers file.  This incident will be reported.

Гость, входящий в систему на этом компьютере, больше не может случайно или охотно взаимодействовать с системой, так как для этого вам нужно быть root. Конечно, если вы добавите нового пользователя, вам нужно будет повторить редактирование / etc / group.

Ура!

- linuxrev

(Ubuntu 12.04)

    
ответ дан user171569 30.06.2013 в 22:28
1

Предупреждение

Осторожно, вы можете заблокировать себя из нашей системы таким образом! Всегда убедитесь, что пользователь root сохраняет свои права, и вы можете получить к нему доступ. Прежде чем открывать корневой терминал, вы можете отменить изменения. Тестовые настройки в другом терминале перед закрытием вашего корневого терминала!

soduers

Как описано в другой ответ . Измените /etc/sudoers , вызвав visudo в оболочке:

sudo select-editor # this is optional. it will allow you to select your default editor in shell
sudo visudo

Затем измените строку, которая говорит что-то похожее на это:

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

:

# root may gain root privileges
root ALL=(ALL) ALL

Или удалите строку, если вы уверены, ваша учетная запись пользователя root включена.

группы

Пользователь по умолчанию является членом группы "admin". Если вы предпочитаете это, вы также можете отменить членство пользователей в эта группа. Сделайте это, следуя моей последней ссылке или удалив его имя из строки admin:x:120:defaultuser в файле /etc/group :

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)//g' /etc/group
    
ответ дан con-f-use 25.05.2011 в 11:00