Я пытаюсь добиться, если я изменил атрибуты пользователя в LDAP, чтобы не было оболочки; например: / etc / noshell, я не хочу, чтобы пользователь успешно использовал ssh. Я изменил атрибут одного пользователя:
# check62, people, wh.local
dn: uid=check62,ou=people,dc=wh,dc=local
uid: check62
cn: Johnny Appleseed
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e1NTSEF9dklpL2pQcWtNWDBFSUs1eUVDMUMxL2FjWHdJNGRuUXY=
shadowLastChange: 15140
shadowMax: 99999
shadowWarning: 7
uidNumber: 6002
gidNumber: 6002
homeDirectory: /home/check62
loginShell: /bin/noshell
# check62, group, wh.local
dn: cn=check62,ou=group,dc=wh,dc=local
objectClass: posixGroup
objectClass: top
cn: check62
gidNumber: 6002
userPassword:: e0NSWVBUfXg=
Вот мой файл /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
Пользователь успешно аутентифицируется с помощью / bin / bash. Выставочная пробка. Любая помощь будет оценена.
Вот мой файл с паролем
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account sufficient pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
Размещение files
или compat
перед ldap
в /etc/nsswitch.conf
- обычная практика, но если у человека есть локальная учетная запись, она переопределит настройки LDAP.
Попробуй это: getent passwd check62
Это покажет вам passwd
запись в базе данных для этого пользователя из всех источников. Если самая верхняя запись содержит /bin/bash
вместо того /bin/noshell
, вам нужно будет либо изменить оболочку в базе данных, которую ваш сервер определяет в качестве приоритета, либо настроить порядок, чтобы сначала представить LDAP. Последнее обычно не рекомендуется.
(Отказ от ответственности: если вы используете PADL nss_ldap
вместо того nss-pam-ldapd
, размещение ldap
first - еще худшая идея, поскольку поисковые запросы LDAP не отправляются демону, и каждый процесс должен иметь дело с тайм-аутом во время поиска NSS. Всегда проверяйте, как будет вести себя ваш сервер, когда сервер LDAP недоступен.)