|
Настройка sudo под LinuxЭтот текст не является переводом полного руководства. Если вы администрируете систему с большим количеством пользователей и сложным распределением полномочий, то очень советую почитать документацию. Но, если вам просто надо выдать определённому пользователю определённые права, то в этой заметке в скорее всего найдёте готовый рецепт. Как редактировать sudoers (visudo) Как редактировать sudoers (visudo)Редактировать файл sudoers "вручную" — плохая практика. Для редактирования есть специальная команда visudo. Она сама знает, где расположен файл sudoers, и отследит, чтобы вы редактировали копия, файл всегда был целостным, а копия была удалена. visudo позволяет использовать любой редактор. Например, вы можете использовать mcedit: # EDITOR=mcedit visudo Если вы допустите ошибку, то, при выходе из редактора получите сообщение вида: visudo: »> /etc/sudoers: syntax error near line 73 «< What now? В этом случае, лучше ввести букву "e" и продолжить редактирование. Настройка прав доступа sudoФайл sudoers, обычно, содержит много комментариев. В каждой системе/дистрибутиве они различны. Имеет смысл ознакомиться с ними и, возможно, внести какие-то правки глобальных настроек. Особое внимание следует обратить на директивы #include ... #includedir ... за ними скрывается ещё куча всего интересного. Но наc интересуют по-пользовательские настройки. Обычно для них есть отдельная часть в sudoers, которая может начинаться таким комментарием: ## ## User privilege specification ## Дальше полномочия описываются строчками вида: [пользователь] [хост]=([кем может стать]) [что может сделать] Простой примерalex ALL=(root) /bin/mount /media/n78 Это означает, что пользователь alex, может выполнить с правами root команду /bin/mount /media/n78. Обратите внимание, путь к команде mount указан полностью. Это важно! Если этого не сделать, то sudo работать не будет. Теперь пользователь alex может выполнить команду $ sudo mount /media/n78 У него будет спрошен пароль (его, а не root). Продвинутые правила sudoМожно написать более сложные правила: alex ALL=(ALL) ALL alex ALL=(root) NOPASSWD: /bin/mount /media/n78 alex ALL=(root) NOPASSWD: /bin/umount /media/n78 Пользователь alex может выполнить монтирование от пользователя root без пароля. И может выполнить любую команду от любого пользователя, если укажет пароль. ФлагиБолее полный пример с использованием флагов: # пользователь root может всё без ограничений root ALL=(ALL) ALL # пользователь alex может становиться пользователем # operator, без указания пароля, и пользователем root # с указанием пароля alex ALL=(operator) NOPASSWD: ALL, (root) ALL # пользователь temp должен всегда указывать не свой пароль, # а пароль того, кем он хочет стать; он может становиться # только пользователем alex и выполнять только одну команду Defaults:temp targetpw temp ALL=(alex) /bin/bash # (этот пользователь предназначен только для удалённого # входа в систему с использованием временного пароля, # отсюда и название) Флагов существует великое множество, смотрите документацию. Вы можете связаться со мной по e-mail a.michurin@gmail.com.
|