Я хочу разработать правило sudo, которое позволит пользователю ricardo
обновить системное использование aptitude
, но препятствуйте тому, чтобы он использовал sudo для выполнения любой другой команды (он - трудный пользователь). Там какие-либо ловушки к этому правилу, что я отсутствую?
ricardo ALL=(root) /usr/bin/aptitude
Ricardo только использует aptitude
, нет apt-get
. Кроме того, мне не установили Ubuntu нигде в данный момент, таким образом, я понимаю это /usr/bin/aptitude
не мог бы быть точный правильный файл для разрешения.
Если существуют ловушки к этому правилу, как я могу улучшить его?
Эта команда ограничит пользователя в использовании aptitude
для чего-либо кроме обновления кэша репозитория и выполнения безопасного обновления системы.
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade
Подобная команда позволит пользователю выполнять полное обновление, но ничто больше:
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade
На документацию способности (10.04), safe-upgrade
:
Обновления установили пакеты на своей новой версии. Установленные пакеты не будут удалены, если они не будут не использованы
Напротив, full-upgrade
:
Обновления установили пакеты на своей новой версии, удалив или установив пакеты по мере необходимости. Эта команда менее консервативна, чем безопасное обновление и таким образом более вероятно выполнить нежелательные действия. Однако это способно к пакетам обновления, которые не может обновить безопасное обновление.
Используйте свое лучшее решение, за которым пользователю нужно разрешить работать. Если Вы не уверены, используйте первое правило, которое только позволяет safe-upgrade
.
Обратите внимание, что, если Вы хотите позволить пользователю устанавливать пакеты (который значительно уменьшает любое преимущество для безопасности, но гипотетически), необходимо включать a *
после aptitude
команда, т.е.
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *
Иначе Вы получите сообщение об ошибке тот пользователь ricardo
не позволяется выполнить команду /usr/bin/aptitude install <package_name>
.
Можно использовать sudo -l
видеть, каким командам пользователь позволяют работать. Например, для наблюдения, какие команды ricardo могут работать:
sudo -ll -U ricardo
видеть, может ли он выполнить способность,
sudo -ll -U ricardo /usr/bin/aptitude
это или распечатает название команды, поскольку оно расширено sudo или выходом с кодом 1, если пользователю не разрешают использовать команду.
Это должно работать в любой недавней находящейся в debian системе на Вас для тестирования; синтаксис не является определенным для Ubuntu.
источник: человек sudo
Я не могу на самом деле видеть ничто плохого с этим sudoers строка. К сожалению, я не бездельничал с sudo
параметры конфигурации так очень, так в этом случае, мой совет не может быть надежным. К счастью, то, что я могу сделать, дают Вам строку, которую я действительно знаю, безопасно:
ricardo ALL=/usr/bin/aptitude
Эта строка, как гарантируют, только позволит ricardo выполниться aptitude
как корень, целый ricardo не является членом sudo-поддерживающей группы, такой как sudo
или admin
.
Источник: 8 способов настроить и настроить Sudo на Ubuntu - фанат с практическими рекомендациями.