SeLinux下VSFTP伺服器的PAM_MYSQL認證的問題
按照帖子上方法,在關閉SeLinux情況下,已成功設置PAM_MYSQL虛擬用戶的VSFTP,但是當重新將SeLinux設置為強制時,VSFTP就無法進行用戶認證了,查了錯誤日誌:
message日誌:
localhost kernel: audit(1179060097.966:5: avc: denied { connectto } for pid=16135 comm="vsftpd" name="mysql.sock" scontext=system_u:system_r:ftpd_t:s0 tcontext=system_u:system_r:mysqld_t:s0 tclass=unix_stream_socket
Secure日誌:
localhost vsftpd: pam_mysql - MySQL error (Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13))
哪位高手能否幫忙解決一下,謝謝!
《解決方案》
查了很多文檔,發現是MYSQL的POLICY造成的,主要是pam_mysql.so的SELINUX的角色不能使用MYSQL造成的。但我有沒有本事改策略,只好想了個笨辦法,因為PHP也需要調用MYSQL,於是我找到PHP當中的MYSQL.so的角色,textrel_shlib_t,將pam_mysql.so原來的lib_t角色改成了textrel_shlib_t角色。呵呵~~,那個煩人的avc:denied再也沒出現了,測試了一下,FTP工作正常。
還請高手指點,改成textrel_shlib_t后,有沒有什麼隱患?謝謝!
命令是chcon -t testrel_shlib_t /lib/security/pam_mysql.so