Sudo-розподіл повноважень між користувачами у FreeBSD, Media UniX
freebsd команди, налаштування, встановлення сервера і не тільки
sudo-розподіл повноважень між користувачами FreeBSD
Як відомо, завжди сидіти під root'ом не добре, саме для розподілу повноважень і створено sudo, а саме для запуску програм від імені іншого користувача. Таким чином, якщосервер на FreeBSD обслуговується декількомакористувачами і в кожного своє завдання, далі якого він вникати не повинен, то sudo - те, що потрібно. Перейдемо до встановленняsudo з портів FreeBSD. Виконуємо: cd /usr/ports/security/sudo make config
Опції складання: Options for sudo 1.7.4.4_1 [ ] LDAP З LDAP support [ ] INSULTS З усіма insults [ ] DISABLE_ROOT_SUDO Disable root sudo [ ] DISABLE_AUTH Disable authentication [ ] NOARGS_SHELL Enable no arguments shell
Встановлюємо: make BATCH=yes -C/usr/ports/security/sudo install clean rehash
Після того, як встало, редагуємо файл конфігурації: cp /usr/local/etc/sudoers /usr/local/etc/sudoers_0 ee /usr/local/etc/sudoers
Даліприклади рядків для додаванняфайл /usr/local/etc/sudoers.
1) Якщо треба дозволити виконувати всі програми користувачам, що входять до групи wheel, використовуючи свій пароль, то треба вписати рядок: %wheel ALL=(ALL) ALL
2) те саме, що й пункт 1, тільки без запиту пароля, то додаємо рядок: %wheel ALL=(ALL) NOPASSWD: ALL
3) Відповідно, якщо треба дати права виконувати будь-які команди одному користувачеві, то дописуємо: user ALL=(ALL) ALL де user — ім'я користувача в системі.
4) Якщо потрібно дозволити членам групи users(має бути в системі) перезавантажувати freebsd, то вписуємо: %users localhost=/sbin/shutdown -r now
5) Якщо потрібно надати права користувачам, що знаходяться в різних групах, то цих користувачів можна об'єднати в одну групу, знову ж таки використовуючи файлик sudoers. Наприклад, у нас 2-а користувача з іменами user1 та user2. В ОС FreeBSD вони знаходяться у різних групах, але цим користувачам треба дозволити виконувати reboot. У такому разі спочатку об'єднуємо їх в одну групу (назвемо її REBUSER) рядком: User_Alias REBUSER = user1, user2
А тепер дозволяємо групі REBUSER перезавантажувати ОС: REBUSER ALL=/sbin/reboot
Примітка: символ % для REBUSER у цьому випадку не потрібний. Користувачі user1, user2 звичайно повинні бути присутніми в системі. /sbin/reboot — команда для перезавантаження Якщо треба створити кілька груп, то дію повторюємо: User_Alias назва_групи = користувач_1, користувач_2 так можна створити безліч груп, кожній з яких надати лише певні права.
6) Тепер уявімо ситуацію, що цій групі REBUSER треба виконувати не одну команду, а список визначений. У такому випадку треба додати рядки: User_Alias REBUSER = user1, user2 Cmnd_Alias COMND = /usr/bin/kill, /sbin/reboot, /sbin/shutdown -r now REBUSER ALL= COMND
тут якраз у рядку Cmnd_Alias перераховано список дозволених команд, об'єднаних довільною назвою COMND.
Псевдонімів для команд можна створити кілька, наприклад: Cmnd_Alias COMND1 = . Cmnd_Alias COMND2 = . Cmnd_Alias COMND3 = .
І дозволити групі тільки ті, які потрібні, наприклад: REBUSER ALL=COMND1, COMND3
Примітка: Назви псевдонімів (у прикладах вище REBUSER, COMND) обов'язково повинні бути з великої літери, інакше працювати не буде.
Ось загалом і весь необхідний мінімум.