Sudo

Материал из Webko Wiki
Перейти к навигации Перейти к поиску

После установки перейдем к конфигурации SUDO. Конфигурационный файл этой программы sudoers находиться в папку /etc/sudoers - если это Linux и в папке /usr/local/etc/sudoers – если вы настраиваете эту программу под FreeBSD.

Файл выглядит примерно следующим образом

  1. sudoers file.
  2. This file MUST be edited with the ‘visudo’ command as root.
  3. Failure to use ‘visudo’ may result in syntax or file permission errors
  4. that prevent sudo from running.
  5. See the sudoers man page for the details on how to write a sudoers file.
  6. Host alias specification
  7. User alias specification
  8. Cmnd alias specification
  9. Defaults specification
  10. Uncomment if needed to preserve environmental variables related to the
  11. FreeBSD pkg_* utilities and fetch.
  12. Defaults env_keep += “PKG_PATH PKG_DBDIR PKG_TMPDIR TMPDIR PACKAGEROOT PACKAGESITE PKGDIR FTP_PASSIVE_MODE”
  13. Additionally uncomment if needed to preserve environmental variables
  14. related to portupgrade.
  15. Defaults env_keep += “PORTSDIR PORTS_INDEX PORTS_DBDIR PACKAGES PKGTOOLS_CONF”
  16. Runas alias specification
  17. User privilege specification

root ALL=(ALL) ALL

  1. Uncomment to allow people in group wheel to run all commands
  2. %wheel ALL=(ALL) ALL
  3. Same thing without a password
  4. %wheel ALL=(ALL) NOPASSWD: ALL
  5. Samples
  6. %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
  7. %users localhost=/sbin/shutdown -h now

Обратите внимание на единственную незакоментированную строку: root ALL=(ALL) ALL Эта строка разрешает исполнять все команды пользователю root из sudo – что собственно выглядит как тавтология, но это отличный пример для нас. Для начала разрешим своему пользователю исполнять все команды через sudo, прописываем под приведенной выше строкой ifreebsd ALL=(ALL)ALL Теперь пользователь ifreebsd сможет исполнять команды root двумя способами или так ifreebsd#…ports/editors/vim>sudo make install clean Или возможна следующая команда которая в чем-то идентична su ifreebsd#…ports/editors/vim>sudo -s Вводите пароль своего пользователя (НЕ root пароль, он не нужен) и все – вы root. Усложним задачу предположим что у нас на системе есть пользователь которому необходимо иногда снимать данные с цепочек правил ipfw (firewall). Стандартный способ, из под рядового пользователя приводит к следующему сообщению : ifreebsd:/>ipfw show ipfw: socket: Operation not permitted И это конечно не удивительно ведь это потенциально важная информация и в целях безопасности ее разрешено просматривать только root. Воспользуемся SUDO. Прописываем в файл sudoers (имя пользователя к примеру test ) test ALL=/sbin/ipfw show Все :) Теперь пользователю test доступна команда ipfw show и только после ввода собственно пароля. test:/>sudo ipfw show Password: Все остальные настройки SUDO делаются по аналогии как видите все очень просто. Если остались вопросы пишите, буду рад. В догонку еще один живой пример использования. Необходимо было настроить использования arping утилиты ( только под root ) под простым пользователем. Также сделать это максимально просто для пользователя. Итак прописываем в sudoers user1 ALL=NOPASSWD:/usr/sbin/arping Где user1 имя пользователя. NOPASSWD – возможность использовать его без пароля. Т.е sudo arping – выполниться без пароля. Последний штрих – ( в случае bash ) В файл - .profile Добавляем alias arping=’sudo arping’ Все, теперь пользователь запустив команду arping 10.1.1.1 просто получит результат без лишних телодвижений и букв :)


Права на перезагрузку и тп

wcs ALL=NOPASSWD:/sbin/reboot martin ALL=NOPASSWD:/usr/sbin/pm-suspend martin ALL=NOPASSWD:/sbin/reboot martin ALL=NOPASSWD:/sbin/shutdown