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

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

18
задан 25 May 2011 в 02:05

3 ответа

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

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

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

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare
                                         # ^- the group to remove
root@toki:~# gpasswd -d username admin
Removing user username from group admin

root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin sambashare
                                        # ^- username not a member
root@toki:~# gpasswd -a username admin
Adding user username to group admin
root@toki:~# id -Gn username
username adm dialout cdrom plugdev lpadmin admin sambashare

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

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

Вот кавычка от usermod страница справочника:

-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.

root@toki:~# 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)

root@toki:~# usermod -G 4,20,24,46,111,122 username

root@toki:~# 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 из командной строки для изменения пользователей и групп.

14
ответ дан 23 November 2019 в 02:13

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

Carefull, можно заблокировать себя из нашей системы этот путь! Всегда удостоверяйтесь, что пользователь 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 включена.

группа

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

cp -n /etc/group /etc/group.bak && \
sed -i 's/\(admin:x.*\)defaultuser\(.*\)/\1\2/g' /etc/group
1
ответ дан 23 November 2019 в 02:13

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

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

$ sudo passwd root

Больше информации в Документации Ubuntu.

Затем:

  • станьте корнем
  • резервное копирование и затем редактирует/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.

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

Удачи!

- linuxrev

(Ubuntu 12.04)

2
ответ дан 23 November 2019 в 02:13

Другие вопросы по тегам:

Похожие вопросы: