Моя рабочая станция Fedora 21 была подключена к моему домену AD и проработала около месяца, и все было хорошо, но однажды утром я пришел и не смог войти в систему. Вначале я обвинял Win2013 и AD, но после небольшого покопания в средстве просмотра событий я не смог найти никаких ошибок, а также тот факт, что я могу успешно войти в систему для всех других членов Linux AD (Fedora 19/20, CentOS 6, Debian 6/7) он не является источником проблемы.
Когда я пытаюсь войти через su
все, что я получаю, это su: Authentication failure
, и /var/log/audit/audit.log
содержит сообщение:
type=USER_AUTH msg=audit(1421174144.121:1306): pid=25524 uid=1000 auid=1000
ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='op=PAM:authentication grantor=? acct="gjohn" exe="/usr/bin/su"
hostname=? addr=? terminal=pts/1 res=failed'
SELinux включен, но я попытался отключить его и получил ту же ошибку / сообщение.
Стоит упомянуть:
getent passwd
все пользователи домена отображаются с правильным UID / GIDЯ использую установку Samba / Winbind, потому что, насколько я могу судить, требуются ли вам диапазоны idmap для файловых служб. Я пытался использовать sssd и realmd, но никогда не мог контролировать диапазоны UID и GID, которые для меня важны.
Я сейчас в растерянности, потому что в /var/log/samba/*
несмотря на повышение уровня журнала. Я предполагаю, что это связано с pam, но я все еще пытаюсь понять, как отслеживать вывод для этой цели.
Соответствующие файлы конфигурации:
/etc/samba/smb.conf:
[global]
workgroup = DOMAIN
realm = DOMAIN.NET
security = ads
server string = Workstation
winbind use default domain = true
winbind nested groups = yes
winbind enum users = yes
winbind enum groups = yes
winbind offline logon = true
winbind refresh tickets = yes
winbind cache time = 5
template shell = /bin/bash
template homedir = /home/%U
idmap config * : backend = rid
idmap config * : range = 10000-20000
passdb backend = tdbsam
encrypt passwords = yes
# logging
log level = 3
log file = /var/log/samba/log.%m
max log size = 50
/etc/krb5.conf:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMAIN.NET
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
/etc/pam.d/password-auth и /etc/pam.d/system-auth:
#%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 >= 1000 quiet_success
auth sufficient pam_winbind.so cached_login 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 < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_winbind.so cached_login
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_winbind.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session optional pam_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_winbind.so cached_login
Изменить: сначала я этого не видел, потому что /var/log/messages
сейчас journalctl
, при каждой попытке входа я получаю сообщение об ошибке:
Jan 13 11:41:38 ws.domain.net su[27383]: pam_winbind(su-l:auth): getting password (0x00000210)
Jan 13 11:41:38 ws.domain.net su[27383]: pam_winbind(su-l:auth): pam_get_item returned a password
Jan 13 11:41:38 ws.domain.net su[27383]: pam_winbind(su-l:auth): internal module error (retval = PAM_SERVICE_ERR(3), user = 'gjohn')
Jan 13 11:41:40 ws.domain.net su[27383]: FAILED SU (to gjohn) crdc on pts/11
Оказывается, это была учетная запись, к которой подключались. Я пытался подключиться, используя:
net ads join -U administrator
Я подумал, что, поскольку мой DNS разрешается правильно, это нормально, но это не так. Мне нужно было использовать administrator@DOMAIN.NET
в качестве учетной записи, к которой нужно присоединиться.