Sudo
После установки перейдем к конфигурации SUDO. Конфигурационный файл этой программы sudoers находиться в папку /etc/sudoers - если это Linux и в папке /usr/local/etc/sudoers – если вы настраиваете эту программу под FreeBSD.
Файл выглядит примерно следующим образом
- sudoers file.
- This file MUST be edited with the ‘visudo’ command as root.
- Failure to use ‘visudo’ may result in syntax or file permission errors
- that prevent sudo from running.
- See the sudoers man page for the details on how to write a sudoers file.
- Host alias specification
- User alias specification
- Cmnd alias specification
- Defaults specification
- Uncomment if needed to preserve environmental variables related to the
- FreeBSD pkg_* utilities and fetch.
- Defaults env_keep += “PKG_PATH PKG_DBDIR PKG_TMPDIR TMPDIR PACKAGEROOT PACKAGESITE PKGDIR FTP_PASSIVE_MODE”
- Additionally uncomment if needed to preserve environmental variables
- related to portupgrade.
- Defaults env_keep += “PORTSDIR PORTS_INDEX PORTS_DBDIR PACKAGES PKGTOOLS_CONF”
- Runas alias specification
- User privilege specification
root ALL=(ALL) ALL
- Uncomment to allow people in group wheel to run all commands
- %wheel ALL=(ALL) ALL
- Same thing without a password
- %wheel ALL=(ALL) NOPASSWD: ALL
- Samples
- %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
- %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