Как я могу заблокировать доступ su для некоторых пользователей только в Linux?

8685
user1116993

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

В RHEL4 я использовал

/etc/pam.d/su

auth required /lib/security/$ISA/pam_stack.so service=system-auth  auth sufficient /lib/security/$ISA/pam_stack.so service=suroot-members  auth required /lib/security/$ISA/pam_deny.so 

/etc/pam.d/suroot-members

auth required /lib/security/$ISA/pam_wheel.so use_uid group=suroot auth required /lib/security/$ISA/pam_listfile.so item=user sense=allow onerr=fail file=/etc/security/sumembers-access 

С вышеупомянутой конфигурацией пользователи в группе suroot могут только su к имени пользователя, указанному в sumembers-access. Но с OEL6 pam_stack.so устарел. Я попытался настроить, как показано ниже, но он не работает, как ожидалось.

/etc/pam.d/su

auth sufficient pam_rootok.so auth include system-auth auth include group2-members auth include group1-members auth required pam_deny.so account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so 

/etc/pam.d/group2-members

auth required pam_wheel.so use_uid group=group2 auth required pam_listfile.so item=user sense=allow onerr=fail file=/etc/security/su-group2-access 

Выше не работает, все пользователи могут су для всех. Может кто-нибудь сказать, что я делаю не так?

3
Не давайте своим пользователям пароли других учетных записей и используйте вместо этого `sudo`. Daniel Beck 12 лет назад 3
sudo - еще один вариант, я с нетерпением жду возможности проверить, что я делаю неправильно. Кроме того, это общие учетные записи Oracle и другие учетные записи приложений. user1116993 12 лет назад 0
`sudo -u oracle -s` grawity 12 лет назад 2
@ grawity sudo пока не вариант, но я уточню у заинтересованных пожилых людей. user1116993 12 лет назад 0

1 ответ на вопрос

0
atolani

Надеюсь, это поможет.

# cat /etc/pam.d/su auth sufficient pam_rootok.so auth [default=1 success=ok ignore=ignore] pam_wheel.so trust use_uid group=group1 auth [success=2 default=die] pam_listfile.so item=user sense=allow onerr=fail file=/etc/security/su-group1-access auth [default=die success=ok ignore=ignore] pam_wheel.so trust use_uid group=group2 auth requisite pam_listfile.so item=user sense=allow onerr=fail file=/etc/security/su-group2-access auth include system-auth account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so  # cat /etc/security/su-group1-access |egrep -v "^#|^$" oracle user  # cat /etc/security/su-group2-access |egrep -v "^#|^$" root 

Оригинальный ответ: используйте ниже

# cat /etc/pam.d/su |egrep -v "^#|^$" auth sufficient pam_rootok.so auth [success=2 default=ignore] pam_succeed_if.so use_uid user notingroup group1 auth required pam_wheel.so use_uid group=group1 auth required pam_listfile.so item=user sense=allow onerr=fail file=/etc/security/su-group1-access auth [success=2 default=ignore] pam_succeed_if.so use_uid user notingroup group2 auth required pam_wheel.so use_uid group=group2 auth required pam_listfile.so item=user sense=allow onerr=fail file=/etc/security/su-group2-access auth include system-auth account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so  # cat /etc/security/su-group1-access |egrep -v "^#|^$" oracle user  # cat /etc/security/su-group2-access |egrep -v "^#|^$" root 
Это имеет смысл и работает отлично, но пользователь, который не является частью какой-либо группы (group1, group2), может su для любого. Как я могу настроить те же ограничения, но если пользователь не входит ни в одну из перечисленных выше групп, он не должен быть в состоянии su никому? user1116993 12 лет назад 0