摘自:https://blog.csdn.net/chizhanghai9659/article/details/101005149
摘自:https://my.oschina.net/sunjin/blog/350094
今天用Samba共享CentOS里面的文件夾給Windows使用,無奈在配置正確,關閉防火牆,且文件屬性均為wrx的情況下,依然被拒絕訪問。弄這個問題花了我不少時間,終於讓我找到了答案:沒有共享文件給Samba!!!
在CentOS中,系統處於安全的考慮,即使擁有着或者權限合法的情況下,也會拒絕某些進程對文件的訪問,這時就需要使用chcon這個命令了。於是在我指定了一個目錄后,使用下面的語句即可:
chcon -R -t public_content_t /mydata/
上面這條命令就是將mydata這個文件夾共享給匿名使用,這其中自然也包含Samba了,或者,也可以使用下面的語句:
chcon -R -t samba_share_t /mydata/
這樣的話,就只是共享給Samba使用而已,在某種程度上,安全性確實更高了。
———-下面作為新的補充:20120908———-
CentOS中的SELinux是一個很強大的強制訪問控制系統,它的全稱是Security Enhanced Linux,是MAC(Mandatory Access Control,強制訪問控制系統)的一個實現,其目的在於明確的指出某個進程可以訪問哪些資源,這些資源包括但不限於文件或網絡端口等。
所以,之前在Samba中,共享的文件已經列出,所有者無爭議,且權限設置無誤的情況下,卻依然被拒絕訪問,是由於它導致的。在服務器上,這樣的安全機制是很有必要的,但是作為開發機,則有些無謂了。既然這樣,我們可以通過自己的設置,來配置SELinux。
首先,獲取當前SELinux的運行狀態:
getenforce
返回的結果分為三種:Enforcing,Permissive和Disabled。其中,Enforcing-代表記錄警告且阻止可疑行為;Permissive-代表僅記錄安全警告但不阻止可疑行為;Disabled表示被禁用;
知道這些后,我們就可以自己設置SELinux的運行狀態了。
setenforce [Enforcing | Permissive | 1 | 0]
上面的設置方式是立即改變SELinux的運行狀態,直到下一次重啟。想永久改變的話,就需要配置它的配置文件了:
vi /etc/sysconfig/selinux
設置SELINUX=xxx(xxx表示你想要的狀態,enforcing,permissive或disabled)即可。
轉載於:https://my.oschina.net/sunjin/blog/350094