*Drive*- Здесь рулят padonki

*Drive* - Counter Strike Source
Текущее время: 29 мар 2024, 00:52

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Настройка sudo
СообщениеДобавлено: 20 мар 2009, 13:18 
Не в сети
padonki
Аватар пользователя

Зарегистрирован: 14 авг 2006, 20:43
Сообщений: 3750
Благодарил (а): 9 раз.
Поблагодарили: 96 раз.
Однажды нам надоедает переключаться под root, чтобы запустить Xcdroast и pppd, и мы озадачиваемся вопросом предоставления прав на это обычному юзеру. Решение есть - это настройка sudo.

Настройки sudo лежат в /etc/sudoers. Для редактирования этого файла рекомендуется использовать команду
#visudo

Чтобы разрешить пользователю user запускать программы pppd и xcdroast, добавим строку:
user localhost=NOPASSWD:/usr/sbin/pppd,/usr/bin/xcdroast
NOPASSWD нужен, чтобы sudo при запуске не справшивала пароль пользователя. Соответственно, если нужно, чтобы спрашивала, ставим PASSWD.

Теперь мы сможем запускать pppd командой
$sudo /usr/sbin/pppd
а xcdroast - командой
$sudo xcdroast
Если внести /usr/sbin в $PATH для user, будет еще проще, но зачем нам это? Все равно скриптом звонить будем :)






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

Команда sudo предоставляет возможность пользователям выполнять команды от имени root, либо других пользователей. Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers; язык их написания и примеры использования подробно изложены в sudoers(5).

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

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

По умолчанию root аккаунт в Ubuntu отключен и пароля у root просто нет. Все административные задачи выполняются через sudo. По умолчанию право на выполнение sudo предоставлено первому пользователю, созданному при инсталляции. Все остальные по умолчанию - обычные пользователи.

Sudo — очень гибкий инструмент, позволяющий настроить права на выполнения административных действий для каждого пользователя отдельно. Например одному разрешить перезагружать какой-либо сервер, а другому дать возможность менять права доступа к файлам и папкам. Откройте файл /etc/sudoers. Это можно сделать либо отдав команду на открытие файла в вашем любимом текстовом редакторе, например так:

# nano /etc/sudoers

либо при помощи утилиты visudo:
# visudo

Последний способ откроет файл /etc/sudoers в редакторе пользователя по умолчанию, или если таковой не задан, то в редакторе vi. Преимущество данного способа в том, что при сохранении файл будет проверен на соответствие синтаксису.

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

Defaults env_reset

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

Такая конфигурация дает пользователю user все права пользователя root при выполнении команды sudo. Defaults env_reset полностью запрещает все пользовательские переменные при исполнении команд от имени root. Это хорошо с точки зрения безопасности, однако иногда вызывает проблемы. Можно разрешить использование личных переменных какой-либо группе или отдельному пользователю, добавив подобную этой строку:
Defaults:%admin !env_reset

которая будет сохранять переменные окружения для всех пользователей группы admin, или:
Defaults:user env_keep=TZ

которая сохранит переменную TZ для пользователя user.

Если сервер администрируется группой людей, то имеет смысл поступить таким образом:
%admin ALL=(ALL) ALL

Как можно догадаться, эта запись дает доступ к root-привилегиям всем членам группы admin.

Можно настроить для каждого конкретного пользователя доступ только к конкретным командам. Например:
user ALL = /bin/mount, /bin/kill

даст пользователю user права на выполнение команд mount и kill с любой машины, а:
user2 mydebiancomp = /sbin/modprobe

даст пользователю user2 права на выполнение modprobe с машины mydebiancomp. Я думаю, что синтаксис понятен:
ползователь хост = команда

где команда прописывается с полным путем. Для группы все аналогично, только добавляется знак “%”.
III.Продвинутые настройки sudo.

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

Cmnd_Alias command_alias = command1, command2, … // алиасы команд
Host_Alias host_alias = hostname1, hostname2, … // алиасы хостов
User_Alias user_alias = user1, user2, … // алиасы пользователей

Далее именами алиасов можно оперировать точно также, как командами, машинами и пользователями, задавая правила.

Исполнение команды от имени другого пользователя тоже возможно. Например при такой записи:
user ALL = (user2, user3) /usr/bin/ark

пользователь user может выполнить команду ark от имени user2 или user3, при помощи ключа u, например так:
$ sudo -u user2 ark

По умолчанию sudo запоминает пароли на 5 минут. Если вы этого не хотите, то для каждого пользователя, группы или алиаса можете установить отдельное правило, например при:
Defaults:user timestamp_timeout=0

пароль полдьзователя user не будет запоминаться вообще, а при:
Defaults:user timestamp_timeout=-1

будет запоминаться на все время аптайма.

Sudo без паролей также возможно. Для этого существует подобная конструкция:
user myubuntucomp = NOPASSWD: /bin/kill

которая даст возможность пользователю user с хоста myubuntucomp использовать kill без запроса пароля. Вставьте свои значения, например ALL вместо имени хоста и команды, чтобы пользователь user мог вообще никогда не вводить пароль для выполнения команд от имени root с любого хоста, однако помните, что это делает систему очень уязвимой.

Автор: Дмитрий Белоусов

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти: