Slackware. Шпаргалки. Как заставить работать sudo


Алексей Федорчук

Если при инсталляции Slackware на стадии выбора пакетов особенно не вычищать серию AP (консольные приложения), то утилита sudo будет установлена по умолчанию. Однако работать не будет. Почему — становится мучительно ясно, если просмотреть содержимое конфига этой утилиты. Поскольку для обычного пользователя он закрыт даже для чтения, сделать это можно, например, так:

$=> su -c 'less /etc/sudoers'

И после ввода пароля администратора увидеть, что все строки секции спецификации привилегий, кроме имеющей отношение в root’у, закомментированы:

## User privilege specification
##
root ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL

## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw  # Ask for the password of the target user
# ALL ALL=(ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'

Что тут раскомментировать (или вообще видоизменить — каждый решает в меру своей паранойи. Я лично снимаю комментарий вот с этой строки:

%wheel ALL=(ALL) ALL

Что при создании пользовательского аккаунта (см. соответствующую шпаргалку) потребует включения пользователя в группу wheel. Зато после этого пользователь, дав команду sudo и введя свой собственный пароль, обретает все права администратора.

А вот как редактировать конфиг sudo, размышлять особо нечего: для этой цели существует специальный инструмент, именуемый visudo. И прибегнуть к нему надо вот в такой форме:

$ su -c visudo

Этим после ввода административного пароля будет вызван текстовый редактор с открытым в нём файлом /etc/sudoers. Вопреки легендам и мифам древнеримских юниксоидов, этим редактором совсем не обязательно будет знаменитый vi, нежно любимый одними и ненавидимый другими. Нет, будет вызвано тот инструмент, который указан как значение переменной EDITOR в конфиге командной оболочки пользователя (не администратора!). Например, у меня роль текстового редактора по умолчанию выполняет обычно joe.