man linux — заметки админа

28 июня 2009

sudo — выполнение команд с привилегиями других пользователей


Синтаксис:

sudo -h ? -K ? -k ? -L ? -l ? -V ? -v
sudo [-bEHPS] [-a auth_type] [-c class?-] [-p prompt] [-u username?#uid] [VAR=value] {-i ? -s ? command}
sudoedit [-S] [-a auth_type] [-c class?-] [-p prompt] [-u username?#uid] file ...

Команда sudo разрешает уполномоченному пользователю выполнять команды от имени другого пользователя (например root) определенного в файле sudoers (обычно /etc/sudoers).

Основные опции:

-V

— Информация о версии программы.

-l

— Вывод списка команд разрешенных для данного пользователя на данном хосте.

-L

— Вывод параметров, которые могут быть установлены в строке Defaults (файл sudoers), с описанием каждого.

-h

— справочная информация.

-v

Обновляет временную метку пользователя, т.е. увеличивает таймаут sudo еще на пять минут.

-k

— Обнуляет таймаут sudo, т.е. при следующем запуске sudo будет запрошен пароль.

-K

— полностью удаляет временную метку sudo пользователя.

-b

— запускает sudo в фоновом режиме.

-u username|#uid

— запуск команды command от имени пользователя username или uid

-s

— запускает оболочку установленную в переменной окружения SHELL или в файле /etc/passwd

-H

— устанавливает переменную окружения HOME в значение домашнего каталога целевого пользователя (обычно root) в соответствии с настройков в файле /etc/passwd. Эта опция может быть полезна, поскольку по умолчанию sudo не модифицирует переменную окружения HOME.

-P

— сохраняет неизменным вектор групп данного пользователя (по умолчанию инициализируется вектор групп, как значение списка групп, в которых числится целевой пользователь).

-S

— считывает пароль со стандартного ввода, вместо терминального устройства.

Конфигурация sudo хранится в файле sudoers (обычно /etc/sudoers), данный файл можно редактировать вручную, либо с помощью утилиты visudo, данная утилита удобна тем, что проверяет синтаксис sudoers и сообщает об ошибках.
Файл sudoers состоит из трех основных частей — алиасы, установки по умолчанию, пользовательская спецификация.
В разделе aliases определяются поименные списки пользователей, хостов и команд для последующих ссылок. Существуют четыре типа алиасов:
User_Alias — пользователи. которым разрешено выполнять команды с помощью sudo
Runas_Alias — пользователи, с чьими привилегиями разрешено выполнять команды.
Host_Alias — хосты, на которых разрешено выполнять команды с помощью sudo

Синтаксис определения алиаса:

Alias_Type Name=item1, item2, item3, ... , itemN

где Alias_Type — это тип алиаса, а Name — список значений. зависящих от типа алиаса.
Например:

User_Alias ADMINS=admin,staff,dima,andrey

В разделе defaults находятся установки sudo принятые по умолчанию. Интересны следующие две опции:
logfile — путь к лог-файлу (по умолчанию логи пишутся в syslog).
mailto — адрес email, для отправки сообщений об ошибках (по умолчанию данные сообщения посылаются пользователю root).

В разделе user specification указываются команды, которые разрешено выполнять пользователям, а также привилегии, с которыми разрешено их выполнять.
Синтаксис:

user    MACHINE=COMMANDS

Например, нам необходимо предоставить пользователю andrey доступ в качестве суперпользователя (root), в таком случае, после того, как пользователь andrey создан, в файле /etc/sudoers в разделе user specification добавляем строчку вида:

andrey ALL=(ALL) NOPASSWD: ALL

При этом, мы говорим sudo не запрашивать пароль у пользователя, т.е. пользователь andrey может выполнять команды с помощью sudo без дополнительного ввода пароля, что может быть довольно удобно (но может быть и не безопасно, на компьютерах, доступ к которым могут получить посторонние лица).

Если при выполнении команды sudo из под пользователя не имеющего root-привелегий команда возвращает ошибку типа «sudo: must be setuid root», можно попробовать установить права chmod на sudo достаточные для запуска sudo из под пользователя, например:

chmod 4755 /usr/bin/sudo
Опубликовано 28 июня 2009 - информация могла устареть.

Комментариев нет »

No comments yet.

RSS feed for comments on this post.

Leave a comment

Для отправки комментария вам необходимо авторизоваться.

Powered by WordPress