Вимкнути дозвіл sudo для користувача з командного рядка


18

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


Залежно від того, як ви налаштовуєте свої групи, введіть візуально
wojox

Відповіді:


14

Користувач, про якого йдеться, має права привітання, оскільки він знаходиться в adminгрупі. Як прокоментував wojox, ви можете використовувати visudoта видаляти привілеї sudo з групи адміністратора, але це видалить можливості sudo з усіх членів групи адміністратора, а не лише з одного користувача.

Крім того, ви можете видалити користувача з групи адміністратора. Якщо орієнтоване на екран 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змінити команду та команду, щоб змінити користувачів та групи.


Схоже, що група, яку потрібно зняти на sudo
Precision,

2

Яку б розумність не знаходила у вищенаведених відповідях, я вирішив питання про ввімкнення кореневого облікового запису та відключення 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.

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

Ура!

- linuxrev

(Ubuntu 12.04)


1

Увага

Обережно, ви можете замкнути себе з нашої системи таким чином! Завжди переконайтеся, що користувач root використовує свої права, і ви можете отримати доступ до нього. Попередньо тримайте кореневий термінал відкритим, щоб ви могли скасувати зміни. Перевірте налаштування в іншому терміналі, перш ніж закривати ваш root-термінал!

содури

Як описано в іншій відповіді . Редагувати /etc/sudoers, використовуючи візуальну оболонку:

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\(.*\)/\1\2/g' /etc/group

1
@psusi: Ні, ти помилився. Він може його видалити. Як він сказав: "Я активував root користувача в ubuntu", це означає, що він ВЖЕ ВІДЖИВАЄТЬСЯ, ЯК ВИКОРИСТОВУЄТЬСЯ КОРИСТУВАЧ, щоб отримати доступ. Будь ласка, виправте свій відгук моєї пошти.
con-f-use
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.