«Знание — могущество».

20 августа 2010

Включаем команду sudo в Debian Linux

написал Figaroo в рубрике Разное @ 15:31

Здравствуйте, дорогие читатели. Это продолжение цикла статей об установке и настройке Debian Linux на домашнем компьютере.

В этой записи я расскажу о том, как включить и настроить команду sudo, а также о том, зачем это нужно.

Из Википедии:

sudo (англ. superuser do, дословно «выполнить от имени суперпользователя») — это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.

Простыми словами — данная команда позволяет выполнять другие команды от имени суперпользователя (root) из своего терминала. sudo чем-то похожа на su, только имеет больший функционал.

Чтобы начать сессию суперпользователя в терминале введите следующее:

sudo -i

Аналог команды su. Вас попросят ввести ваш пароль (а в su нужно вводить пароль root'а).

Чтобы просто выполнить команду от имени root, не меняя сессии, ведите в терминале следующее:

sudo команда

Приступим к настройке sudo

Необходимые нам настройки хранятся в файле /etc/sudoers, но редактировать его напрямую нельзя даже суперпользователю. Необходимо использовать утилиту visudo:

su
visudo

При сохранении файл будет проверен на ошибки в синтаксисе.

Простейшая конфигурация такова:

Defaults env_reset

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

Такая конфигурация дает пользователю user все права пользователя root при выполнении команды sudo.

Если необходимо дать права группе, а не отдельному пользователю, можно использовать следующий синтаксис:

Defaults env_reset

# user host = commands
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL

Можно настроить для каждого конкретного пользователя доступ только к конкретным командам. Например:

# выполнение mount и umount пользователем user1 с любой машины
user1 ALL = /bin/mount, /bin/umount
# выполнение mount и umount пользователем user2 с машины user2-desktop
user2 user2-desktop = /bin/mount, /bin/umount

Для команд, машин и пользователей можно создавать альясы (объединения для повторного использования) и указывать их. Примеры:

mycommands command_alias = command1, command2
myhosts host_alias = hostname1, hostname2
myusers user_alias = user1, user2

По умолчанию команда sudo запоминает пароли на 5 минут. Это значение можно поменять, указав директиву:

Defaults:user timestamp_timeout=10

Вместо 10-ти можно указать 0 (не запоминать пароль) или -1 (запоминать пароли на всё время сеанса пользователя).

Также можно выключить запрос пароля. Для этого используйте конструкцию NOPASSWD:

user user-desktop = NOPASSWD: /bin/kill

При настройке sudo помните о безопасности.
Спасибо за внимание.

Нет комментариев »

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

RSS-лента комментариев к этой записи

Оставить комментарий

Пожалуйста, заполните все поля.

© Валерий 'Figaroo' Киркиж, 2008-2012 гг.