Обратите внимание, что я всего лишь скопировал статью сюда — я не правил её, и не имею никакого отношения к её содержимому (более того, с некоторыми моментами я категорически не согласен). С другой стороны, я считаю эти статьи полезными для новичка, и потому копирую их.
Все авторские права принадлежат Дмитрию Белоусову.
Дмитрий Белоусов
Последнее обновление: 02.02.2008
Последнее обновление: 02.02.2008
…По умолчанию в Debian GNU/Linux пакет sudo отсутствует. Установка sudo — это, по глубокому убеждению автора, перовое, что необходимо сделать после завершения установки базовой системы Debian GNU/Linux. У пользователей Ubuntu Linux sudo установлен по умолчанию, однако тоже может потребовать конфигурации.
I.Установка sudo из репозиториев Debian GNU/Linux.
Выполните команду:# aptitude install sudo
II.Базовая настройка 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
Defaults:user env_keep=TZ
Если сервер администрируется группой людей, то имеет смысл поступить таким образом:
%admin ALL=(ALL) ALL
Можно настроить для каждого конкретного пользователя доступ только к конкретным командам. Например:
user ALL = /bin/mount, /bin/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
$ sudo -u user2 ark
По умолчанию sudo запоминает пароли на 5 минут. Если вы этого не хотите, то для каждого пользователя, группы или алиаса можете установить отдельное правило, например при:
Defaults:user timestamp_timeout=0
Defaults:user timestamp_timeout=-1
Sudo без паролей также возможно. Для этого существует подобная конструкция:
user myubuntucomp = NOPASSWD: /bin/kill
Надеюсь, что данной информации будет достаточно для настройки ограничений прав доступа при помощи
sudo
.Копируете статью — поставьте ссылку!
11 комментариев:
Статья супер!!!
Вот только как сделать так, чтобы гномовские административные приложения, запускающиеся через gksu, просили пароль не рута, а юзера?
Статья супер!!!
Благодарим Дмитрия Белоусова :)
Вот только как сделать так, чтобы гномовские административные приложения, запускающиеся через gksu, просили пароль не рута, а юзера?
Никак. su (консольная утилита) просит пароль того пользователя, права которого ты хочешь получить (по умолчанию — рута), а gksu является GTK+ интерфейсом для /bin/su.
Хмм... может как же тогда в убунту реализована эта возможность, ведь там все гномовские административные приложения кушают пароль юзера и довольны :)
Хмм... может как же тогда в убунту реализована эта возможность, ведь там все гномовские административные приложения кушают пароль юзера и довольны :)
Довели, погуглил :)
Оказалось, что помимо gksu существует также gksudo (я, честно говоря, подумал о том, что gksudo должна существовать, но почему-то ожидал увидеть реализацию в виде отдельного пакета; очевидно, обе утилиты лежат в gksu), делающий то же,что sudo, но через GTK+ интерфейс. В Debian всё работает правильно, в Ubuntu root'а по умолчанию нет и потому обе утилиты спрашивают пароль текущего юзера. Всей ветки (ссылки ниже) я не читал, но, судя по всему, тебе придётся вручную заменить gksu на gksudo во всех шорткатах в меню, если ты хочешь вводить пасс юзера, а не рута.
Первоисточник (у меня не открылся, смотрел в кеше гугла).
thanks! В выходные озадачусь и прикручу sudo + gksudo :)
Рад, что смог помочь. Удачи!
Кстати, было бы интересно потом почитать в твоём блоге, чем же дело закончилось — мало ли, вдруг самому когда придётся с этим возится :)
Ок, я в блоге отпишусь обязательно. Давно хотел настроить sudo, да вот никак времени не было
Ubuntu 8.04
Почему, несмотря на наличие в /etc/sudoers
строки
user ALL = NOPASSWD: /usr/sbin/hibernate
sudo при выполнении /usr/sbin/hibernate спрашивает пароль user-а?
Ubuntu 8.04
Почему, несмотря на наличие в /etc/sudoers
строки
user ALL = NOPASSWD: /usr/sbin/hibernate
sudo при выполнении /usr/sbin/hibernate спрашивает пароль user-а?Честно говоря, не знаю. Ubuntu я вообще не юзал, хотя учитывая то, что она основана на используемом мною Debian'е, кажется странным то, что ты наблюдаешь.
Всё, что могу сделать — посоветовать обратится на форумы. В частности, мне всегда помогали на linuxforum.ru — сходи туда, авось и тебе помогут.
у меня пишет
# aptitude install sudo
Следующие НОВЫЕ пакеты будут установлены:
sudo
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 1 пакетов не обновлено.
Необходимо получить 0 B/851 kB архивов. После распаковки 1 885 kB будет занято.
Смена носителя: вставьте диск, помеченный как «Debian GNU/Linux 7.1.0 _Wheezy_ - Official i386 CD Binary-1 20130615-21:54» в привод «/media/cdrom/» и нажмите [Enter].
как сд еще ему нужен?
@kaban, там же ясно написано: нужен первый CD. Это тот диск, с которого ты ставил систему. Если диска у тебя больше нет, можно поправить /etc/apt/sources.list, удалив оттуда соответствующую строку и добавив Интернет-репозитории — тогда пакет скачается оттуда. Удачи!
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.