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

Как я могу разрешить одному пользователю использовать su другому, не разрешая root-доступ?

Я хотел бы разрешить определенным пользователям использовать 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 группа.

аналогичный вопрос Вот