it-swarm-ru.tech

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

Я хотел бы разрешить определенным пользователям использовать su для другой учетной записи пользователя без необходимости знать пароль этой учетной записи, но не разрешать доступ к любой другой учетной записи пользователя (например, root).
Например, я бы хотел разрешить Tom DBA su для пользователя Oracle, но не для пользователя Tomcat или root.

Я полагаю, что это можно сделать с помощью файла/etc/sudoers - возможно ли это? Если да, то как?

56
gharper

Да, это возможно.

В / etc/sudoers элемент, следующий сразу за равенством, - это пользователь, которому разрешено выполнять команду.

tom  ALL=(Oracle) /bin/chown tom *

Пользователь (том) может набрать Sudo -u Oracle/bin/chown tom/home/Oracle/oraclefile

45
Brent

Добавьте в ваш/etc/sudoers что-то вроде

tom ALL=(Oracle) ALL

Тогда пользователь Том должен иметь возможность использовать Sudo для запуска в качестве пользователя Oracle с параметром -u, не позволяя Тому

То есть получение Shell в качестве пользователя Oracle (ну, учитывая, что ваш Sudo достаточно новый, чтобы иметь опцию -i).

Sudo -u Oracle -i
42
Kjetil Joergensen

Чтобы ТОЛЬКО предоставить возможности в вопросе, добавьте следующее в/etc/sudoers:

tom            ALL=(Oracle)    /bin/bash

Тогда Том может:

Sudo -u Oracle bash -i
9
karimofthecrop

Например, я бы хотел разрешить Tom DBA su пользователю Oracle, но не пользователю Tomcat или пользователю root.

Мне нужно было сделать это с системой недавно, и мне было трудно найти мои заметки о альтернативной установке, которую я использовал несколько лет назад, которая также допускала синтаксис su <user>. В моей ситуации мне нужно было разрешить нескольким пользователям su определенному пользователю.

Создать группу с помощью addgroup <groupName> что другие пользователи смогут su без пароля. Затем добавьте эту группу к каждому пользователю, которого вы хотите иметь возможность su для этого пользователя без пароля: usermod -a -G <groupName> <userName> (или usermod -a -G Oracle tom). Изменения в группе могут не вступить в силу до следующего входа в систему.

Примечание: в вашем случае у вас уже есть группа, потому что группа Oracle была бы создана, когда вы сделали пользователя 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.

похожий вопрос здесь

0
jtlindsey