Я хотел бы разрешить определенным пользователям использовать su для другой учетной записи пользователя без необходимости знать пароль этой учетной записи, но не разрешать доступ к любой другой учетной записи пользователя (например, root).
Например, я хотел бы разрешить администратору БД Тому использовать su для пользователя oracle, но не для пользователя tomcat или root.
Думаю, это можно сделать с помощью файла / etc / sudoers - возможно ли это? Если да, то как?
Да, это возможно.
В / и т.д. / sudoers элемент, следующий сразу за равным, - это пользователь, от имени которого будет разрешено выполнение команды.
tom ALL=(oracle) /bin/chown tom *
Пользователь (Том) может ввести sudo -u оракул / bin / chown tom / home / oracle / oraclefile
Добавьте в свой / etc / sudoers что-нибудь вроде
tom ALL=(oracle) ALL
Затем пользователь tom должен иметь возможность использовать sudo для запуска вещей от имени пользователя oracle с параметром -u, не позволяя tom
Т.е. получение оболочки в качестве пользовательского оракула (ну, учитывая, что ваше sudo достаточно новое, чтобы иметь параметр -i).
sudo -u oracle -i
Чтобы ТОЛЬКО предоставить возможности в вопросе, добавьте следующее в / etc / sudoers:
tom ALL=(oracle) /bin/bash
Тогда Том сможет:
sudo -u oracle bash -i
Например, я хотел бы разрешить администратору БД Тому использовать su для пользователя oracle, но не для пользователя tomcat или root.
Мне нужно было сделать это с системой недавно, и мне было трудно найти свои заметки об альтернативной настройке, которую я использовал много лет назад, которая также позволяла синтаксис su <user>
. В моей ситуации мне нужно было разрешить нескольким пользователям su
конкретному пользователю.
Создайте группу, используя addgroup <groupName>
что другие пользователи смогут su
без пароля. Затем добавьте эту группу к каждому пользователю, которого вы хотите su
этому пользователю без пароля: usermod -a -G <groupName> <userName>
(или usermod -a -G oracle tom
). Изменения группы могут не вступить в силу до следующего входа в систему.
Примечание: в вашем случае у вас уже есть группа, потому что oracle
группа была бы создана, когда вы сделали пользователя оракула с adduser oracle
.
Теперь редактировать /etc/pam.d/su
и под следующим:
# This allows root to su without passwords (normal operation)
auth sufficient pam_rootok.so
..добавьте строки правила аутентификации, чтобы раздел выглядел так:
# This allows root to su without passwords (normal operation)
auth sufficient pam_rootok.so
auth [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth sufficient pam_succeed_if.so use_uid user ingroup <groupName>
Заменить <groupName>
с участием oracle
в таком случае. Это позволит любому пользователю, входящему в <groupName>
к su <groupName>
Сейчас tom
жестяная банка su oracle
и если вам нужно предоставить другим пользователям такой же доступ, добавьте их в oracle
группа.
аналогичный вопрос Вот