- 论坛徽章:
- 1
|
关于sendmail如何支持virtual user的问题请教。
登入時, login 會先使用到 pam 中的 login , 而後 passwd 再使用到 pam 的 passwd
此時過了後,因為系統只看 uid/gid ,到了 shell 時, shell 會提取 username
但會發現,無法找到 (因其使用getpwnam/getpwuid/getspnam...時,預設是向 /etc/passwd 查詢), 所以 nsswitch.conf 要定義,可以向 files (/etc/passwd)
及 mysql 查詢, files 則是用原來的系 統呼叫,但若用到 mysql 則需要有同一呼叫
但支援 mysql 的 getpwnam 功能,所以 libnss_mysql.cfg 就是在定義這個地方
你若 man getpwnam 時可以看到這個 :
struct passwd {
char *pw_name; /* user name */
char *pw_passwd; /* user password */
uid_t pw_uid; /* user id */
char *pw_dir; /* home directory */
char *pw_shell; /* shell program */
};
這個內容和我給你那個 link 中提到的 sql , ex:
getpwnam SELECT user_name,'x',uid,'100','users',homedir,shell FROM user WHERE
user_name='%s' LIMIT 1
是一樣的,把 mysql 查到的東西填到這個 struct 中去,完成 getpwnam 的請求 |
|