У меня вот что получилось!tac_plus.conf
=============
key = super_secret
user = tacuser {
# Пользователя несуществует на клиентском хосте
login = cleartext tacuserpass
}
user = user {
# Пользователь существует на клиентском хосте
login = cleartext userpass
}
/etc/pam.d/tacacs
=================
auth sufficient /usr/lib/pam_tacplus.so try_first_pass
account sufficient /usr/lib/pam_tacplus.so service=shell protocol=ssh
session sufficient /usr/lib/pam_tacplus.so service=shell protocol=ssh
При авторизации пользователем tacuser получаю ошибку:
====================================================
Mon May 28 17:04:07 2012 [14045]: PACKET: key=super_secret
Mon May 28 17:04:07 2012 [14045]: version 192 (0xc0), type 1, seq no 3, flags 0x1
Mon May 28 17:04:07 2012 [14045]: session_id 3974293904 (0xece2e990), Data length 18 (0x12)
Mon May 28 17:04:07 2012 [14045]: End header
Mon May 28 17:04:07 2012 [14045]: type=AUTHEN/CONT
Mon May 28 17:04:07 2012 [14045]: user_msg_len 13 (0xd), user_data_len 0 (0x0)
Mon May 28 17:04:07 2012 [14045]: flags=0x0
Mon May 28 17:04:07 2012 [14045]: User msg:
Mon May 28 17:04:07 2012 [14045]: 0x8 0xa
Mon May 28 17:04:07 2012 [14045]: User data:
Mon May 28 17:04:07 2012 [14045]: End packet
Mon May 28 17:04:07 2012 [14045]: login query for 'tacuser' unknown-port from 10.171.50.244 rejected
Mon May 28 17:04:07 2012 [14045]: login failure: tacuser 10.171.50.244 (10.171.50.244) unknown-port
Mon May 28 17:04:07 2012 [14045]: Writing AUTHEN/FAIL size=18
Mon May 28 17:04:07 2012 [14045]: PACKET: key=super_secret
Mon May 28 17:04:07 2012 [14045]: version 192 (0xc0), type 1, seq no 4, flags 0x1
Mon May 28 17:04:07 2012 [14045]: session_id 3974293904 (0xece2e990), Data length 6 (0x6)
Mon May 28 17:04:07 2012 [14045]: End header
При авторизации пользователем user получаю следующее:
=====================================================
Mon May 28 17:14:12 2012 [14066]: Read AUTHEN/CONT size=25
Mon May 28 17:14:12 2012 [14066]: PACKET: key=super_secret
Mon May 28 17:14:12 2012 [14066]: version 192 (0xc0), type 1, seq no 3, flags 0x1
Mon May 28 17:14:12 2012 [14066]: session_id 4210167980 (0xfaf210ac), Data length 13 (0xd)
Mon May 28 17:14:12 2012 [14066]: End header
Mon May 28 17:14:12 2012 [14066]: type=AUTHEN/CONT
Mon May 28 17:14:12 2012 [14066]: user_msg_len 8 (0x8), user_data_len 0 (0x0)
Mon May 28 17:14:12 2012 [14066]: flags=0x0
Mon May 28 17:14:12 2012 [14066]: User msg:
Mon May 28 17:14:12 2012 [14066]: userpass
Mon May 28 17:14:12 2012 [14066]: User data:
Mon May 28 17:14:12 2012 [14066]: End packet
Mon May 28 17:14:12 2012 [14066]: login query for 'user' unknown-port from 10.171.50.244 accepted
Mon May 28 17:14:12 2012 [14066]: Writing AUTHEN/SUCCEED size=18
Mon May 28 17:14:12 2012 [14066]: PACKET: key=super_secret
Mon May 28 17:14:12 2012 [14066]: version 192 (0xc0), type 1, seq no 4, flags 0x1
Mon May 28 17:14:12 2012 [14066]: session_id 4210167980 (0xfaf210ac), Data length 6 (0x6)
Mon May 28 17:14:12 2012 [14066]: End header
Mon May 28 17:14:12 2012 [14066]: type=AUTHEN status=1 (AUTHEN/SUCCEED) flags=0x0
Mon May 28 17:14:12 2012 [14066]: msg_len=0, data_len=0
Mon May 28 17:14:12 2012 [14066]: msg:
Mon May 28 17:14:12 2012 [14066]: data:
Mon May 28 17:14:12 2012 [14066]: End packet
Mon May 28 17:14:12 2012 [14066]: 10.171.50.244: disconnect
Как я понимаю, серверу не передается пароль несушествующего пользователя в системе.
При этом я могу войти в систему как под паролем локального пользователя так и под паролем с сервера
Можете подсказать возможно ли войти в систему под несушествующей локальной учетной записью на удаленном хосте, а под учеткой взятой с сервера? Как я понял переменная template_user служит именно для этого, должна авторизовать входящего пользователя под тем пользователем который указан при авторизации именно в том случае когда локального паользователя с таким именем нет!.