Назад | Перейти на главную страницу

Разрешить вход в систему от имени любого пользователя из группы с помощью sudoers

Я бы хотел добавить /etc/sudoers правило, разрешающее любому пользователю из группы admin войти как пользователь из группы users.

Пример:

В группе admin У меня есть: alan и smith. В группе users: anna, mike. И другие пользователи: stephen, nick.

alan и smith может это сделать:

sudo su - anna
sudo su - mike

Но этого сделать нельзя:

sudo su -
sudo su - root
sudo su - stephen

Напрасно пробовал что-то вроде этого:

%admin ALL=(ALL) NOPASSWD:/bin/su - %users

Любые идеи?


P.S. было бы идеально, если бы соблюдалась еще одна зависимость:

alan также в users группа и smith не могу:

sudo su - alan

так как alan в admin группа.

Я не думаю, что ты действительно хочешь или нуждаешься su для вашего варианта использования. Похоже, что вам нужно, чтобы определенная группа пользователей могла произвольно принимать личность любого пользователя в другой определенной группе. Для этого вам просто понадобятся sudoers:

%admin ALL=(%users) NOPASSWD:ALL

Вышеупомянутое правило sudoers означает, что все пользователи в admin группа может бежать любой команда так как любой пользователь в users группа через sudo -u <user> <command>.

Если вы хотите, вы можете ограничить команды, которые пользователи-администраторы могут запускать как другой пользователь, которого вы заменяете ALL в конце что-то более конкретное. Видеть man sudoers подробнее об этом.

Чтобы получить ~ оболочку входа в систему для данного users группа пользователей, вместо использования su, админ может сделать:

sudo -u anna /bin/bash -il

Примечание о su (человек су):

Команда su используется, чтобы стать другим пользователем во время сеанса входа в систему.

su всегда запрашивает пароль пользователя, под которым вы регистрируетесь, Кроме для случая, когда вызывающий пользователь является пользователем root. sudo su - [user] не запрашивает пароль, потому что вы поднимаетесь до root (через sudo), затем exec su - [user] чтобы начать новый сеанс входа в систему. Но если вы не хотите повышать уровень sudoer до root, sudoer должен знать пароль пользователя, которого они хотят. su как, побеждая цель использования sudo в первую очередь.

Вы просто не можете использовать "% users", потому что это будет означать группу linux, а не переменную sudoers.

Вы можете сделать что-то вроде следующего:

Cmnd_Alias      SWITCH_USERS = /bin/su - anna, /bin/su - mike
%admin      ALL=(ALL) NOPASSWD: SWITCH_USERS

Если вы создаете две группы admin / users в системе только для этого вопроса, вы можете захотеть создать псевдонимы пользователей sudoers (так что вам нужно только отслеживать файлы sudoers). По моему личному мнению, лучше всего использовать параметры sudoers для sudo , и системные группы для разрешений, связанных с файлами / каталогами (но это мое мнение, не обязательно)

Руководство Sudoers немного сложно понять по некоторым темам. Вот хорошее руководство (с примерами), которое может помочь вам отредактировать файл sudoers: как редактировать файл sudoers

Я думаю, что самое полезное, что вы должны помнить о том, что вы пытаетесь выполнить, это: если вы добавляете полную команду в sudoers (со всеми параметрами и параметрами, она должна запускаться таким образом, поэтому "/ bin / su - "не будет работать, если вы укажете имя пользователя после команды (см. мой пример). Вы можете отрицать с помощью NOEXEC: команду, которую вы хотите запретить любым способом в sudo, и всегда используйте" visudo "для редактирования / etc / sudoers, что проверяет синтаксис.