Samba共享後不能訪問是selinux惹的禍



第一種方法:關閉SELinux,並修改配置文件,使系統啓動時不啓動SELinux。linux



不關機的關閉方法是:setenforce 0緩存


永久關閉是:安全

vi /etc/sysconfig/selinux服務器


# This file controls the state of SELinux on the system.網絡

# SELINUX= can take one of these three values:dom

# enforcing - SELinux security policy is enforced.socket

# permissive - SELinux prints warnings instead of enforcing.ide

# disabled - SELinux is fully disabled.工具

SELINUX=enforcingui


# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted


把 SELINUX設定爲disable, 下次啓動系統後將會中止SElinux。



還有一種是;

在覈心參數後加上 selinux=0 (中止) 或 selinux=1 (開啓)參數


vi /boot/grub/menu.lst


title Fedora Core (2.6.18-1.2798.fc6)

root (hd0,0)

kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet selinux=0

initrd /initrd-2.6.18-1.2798.fc6.img



檢查SELinux現時況態的命令是; getenforce





第二種方法 :不關閉SELinux配置 samba的方法 (在51cto網上找到的)


將smb.conf中以下這兩行啓用(去掉行首的;號就能夠了)

setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on這兩行生效後,本身的home目錄就能夠正常讀寫了。


針對於目錄共享設置:

如 /home/samba/test目錄設置成徹底的共享就應該在字符狀態寫輸入:

chcon -t samba_share_t /home/samba/test


同時不要忘記將/home/samba/test目錄屬性設置成777 就能夠了。



默認的,SELinux禁止網絡上對Samba服務器上的共享目錄進行寫操做,即便你在smb.conf中容許了這項操做。


假設你已經配置了共享目錄/share並容許用戶進行讀寫,而你又不想關閉SELinux的話,能夠試試如下操做:


程序代碼:


  1. #/usr/sbin/setsebool -P allow_smbd_anon_write=1

  2. #chcon -t public_content_rw_t /share



其中第一條語句設置SELinux放行標記了public_content_rw_t的內容,第二條語句把欲共享的/share目錄標記爲public_content_rw_t。



附SELinux資料:




selinux簡介


SElinux 在linux內核級別上提供了一個靈活的強制訪問控制系統(MAC),這個強制訪問控制系統是創建在自由訪問控制系統(DAC)之上的。


DAC是指系統的安全訪問控制都是由系統管理員root自由管理的,不是系統強制行爲


MAC運行的時候,好比一個應用程序或者一個線程以某個用戶UID或者SUID運行的時候一樣對一些其餘的對象擁有訪問控制限制,好比文件,套接子(sockets)或者其餘的線程


經過運行SElinux MAC內核能夠保護系統不受到惡意程序的侵犯,或者系統自己的bug不會給系統帶來致命影響(把影響限定在必定範圍內)


SElinux爲每個用戶,程序,進程,還有文件定義了訪問還有傳輸的權限。而後管理全部這些對象之間的交互關係


對於SELinux設定的對象全限是能夠根據須要在安裝時候規定嚴格程度,或者徹底禁用


在大多數狀況下,SElinux對於用戶來講是徹底透明的,普通用戶根本感受不到 Selinux的存在,只有系統管理員才須要對這些用戶環境,以及策略進行考慮。這些策略能夠按照須要寬鬆的部署或者應用嚴格的限制,Selinux提供 了很是具體的控制策略,範圍覆蓋整個linux系統


好比,當一個對象如應用程序要訪問一個文件對象,內核中的控制程序檢查訪問向量緩存 (AVC),從這裏尋找目標和對象的權限,若是在這裏沒有發現權限定義,則繼續查詢安全定義的上下關聯,以及文件權限,而後做出准許訪問以及拒絕訪問的決 定。若是在var/log/messages出現avc: denied信息,則代表訪問拒絕。


目標和對象經過安裝的策略來決定自身的安全關聯,同時這些安裝的策略也負責給系統產生安全列表提供信息。


除了運行強制模式之外,SELinux能夠運行在許可模式,這時候,檢查AVC以後,拒絕的狀況被記錄。Selinux不強制使用這種策略.


如下介紹一下SELinux相關的工具


/usr/bin/setenforce 修改SELinux的實時運行模式


setenforce 1 設置SELinux 成爲enforcing模式


setenforce 0 設置SELinux 成爲permissive模式


若是要完全禁用SELinux 須要在

/etc/sysconfig/selinux中設置參數selinux=0 ,


或者在/etc/grub.conf中添加這個參數

/usr/bin/setstatus -v

相關文章
相關標籤/搜索