Samba拒絕訪問的解決方式、某個文件夾沒有權限訪問


摘自: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM