Автоматическая смена пароля в Samba
Материал из Xgu.ru
- Короткий URL: samba/password_age
На этой странице описывается как при использовании Samba в качестве контроллера домена Windows сделать так, чтобы пользователь автоматически получал приглашение сменить пароль при истечении срока его действия; где хранятся информация о времени смене пароля, и как её можно изменить.
Содержание |
[править] Автоматическая смена пароля
Если посмотреть информацию о смене пароля пользователю в каталоге LDAP, то она там указана правильная:
%# smbldap-usershow myuser dn: uid=myuser,... ... sambaAcctFlags: [U] ... sambaPwdLastSet: 1191333882 sambaPwdMustChange: 1195221882 ...
Тем не менее автоматическая смена пароля при наступлении нужного времени не выполняется и записи к каталоге LDAP игнорируются.
Это связано с тем, что теперь дата смены пароля не берётся в каталоге, а вычисляется Samba динамически на основе информации о смене пароля, и настроек политики:
(фрагмент кода samba)
if (!pdb_get_account_policy(AP_MAX_PASSWORD_AGE, &expire) || expire == (uint32)-1 || expire == 0)- return get_time_t_max(); return sampass->pass_last_set_time + expire;
Переменная expire получает своё значение из политики, которая в случае, если не используется LDAP, хранится в файле account_policy.tdb:
%# find /var -name account_policy.tdb -exec ls -l {} \; -rw------- 1 root root 8192 2007-04-18 08:49 /var/lib/samba/account_policy.tdb
В том случае, если используется LDAP, она хранится в каталоге:
# ldapsearch -h 10.1.2.3 -x -b 'dc=mydc,dc=com' '(sambaDomainName=MYDC)' # extended LDIF # # LDAPv3 # base <dc=mydc,dc=com> with scope subtree # filter: (sambaDomainName=EB) # requesting: ALL # # MYDC, mydc.com dn: sambaDomainName=MYDC,dc=mydc,dc=com objectClass: top objectClass: sambaDomain objectClass: sambaUnixIdPool sambaDomainName: MYDC sambaSID: S-1-5-21-1071641343-70743285-XXXXXXXXX sambaRefuseMachinePwdChange: 0 sambaLogonToChgPwd: 0 sambaForceLogoff: -1 sambaMinPwdAge: 0 sambaLockoutObservationWindow: 30 gidNumber: 1031 sambaMinPwdLength: 8 sambaLockoutDuration: 30 sambaLockoutThreshold: 8 sambaPwdHistoryLength: 0 uidNumber: 1509 sambaNextRid: 1367 sambaMaxPwdAge: 4294967295 # search result search: 2 result: 0 Success
(Пример показан для домена MYDC (dc=mydc,dc=com), LDAP-сервер для которого расположен на 10.1.2.3.)
Время жизни пароля находится в атрибуте sambaMaxPwdAge:
sambaMaxPwdAge: 4294967295
Просмотреть значение того или иного параметра политики можно через Samba с помощью pdbedit -P, например:
%# pdbedit -P "maximum password age" account policy "maximum password age" description: Maximum password age, in seconds (default: -1 => never expire passwords) account policy "maximum password age" value is: 4294967295
При таком значении параметра "maximum password age" политики, возникает описанная вверху ситуация.
Изменить значение политики:
%# pdbedit -P "maximum password age" -C 100000
(здесь 10000 — это время в секундах, на протяжении которого пароль можно не менять).
С этого момента времени пароль будет меняться в соответствии с политикой.
[править] Правила
Нужно запомнить:
- Актуальные параметры, которые использует Samba-сервер нужно смотреть с помощью pdbedit. Некоторые параметры можно посмотреть с помощью smbldap-usershow, но если они противоречат тому, что показывает pdbedit, нужно иметь в виду, что действительны именно параметры pdbedit, поскольку smbldap-usershow показывает значения, установленные в каталоге, а pdbedit — их интерпретацию.
- Значение времени смены пароля вычисляется динамически и нигде не хранится.
- Значение вычисляется на основе даты смены пароля + значения параметра maximum password age политики.
- Параметр maximum password age политики хранится не в каталоге, а в локальном файле на samba-сервере
[править] Дополнительная информация
- http://fixunix.com/samba/140922-samba-pdbedit-password-expiration.html
- http://wiki.samba.org/index.php/Frequently_Asked_Questions
- http://samba.org/samba/docs/man/Samba-HOWTO-Collection/passdb.html
- http://samba.org/samba/docs/man/Samba-HOWTO-Collection/PolicyMgmt.html
[править] Материалы по Samba на xgu.ru
- Samba
- Samba 4
- Антивирусная защита Samba с помощью ClamAV
- LDAP-репликация и Samba
- Автоматическая смена пароля в Samba