Samba共享后不能访问,或者看不到文件,是selinux惹的祸
Samba共享后不能訪問(wèn)是selinux惹的禍
第一種方法:關(guān)閉SELinux,并修改配置文件,使系統(tǒng)啟動(dòng)時(shí)不啟動(dòng)SELinux。
不關(guān)機(jī)的關(guān)閉方法是:setenforce 0
永久關(guān)閉是:
vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
把 SELINUX設(shè)定為disable, 下次啟動(dòng)系統(tǒng)后將會(huì)停止SElinux。
還有一種是;
在核心參數(shù)后加上 selinux=0 (停止) 或 selinux=1 (開(kāi)啟)參數(shù)
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現(xiàn)時(shí)況態(tài)的命令是; getenforce
第二種方法 :不關(guān)閉SELinux配置 samba的方法 (在51cto網(wǎng)上找到的)
將smb.conf中如下這兩行啟用(去掉行首的;號(hào)就可以了)
setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on這兩行生效后,自己的home目錄就可以正常讀寫了。
針對(duì)于目錄共享設(shè)置:
如 /home/samba/test目錄設(shè)置成完全的共享就應(yīng)該在字符狀態(tài)寫輸入:
chcon -t samba_share_t /home/samba/test
同時(shí)不要忘記將/home/samba/test目錄屬性設(shè)置成777 就可以了。
默認(rèn)的,SELinux禁止網(wǎng)絡(luò)上對(duì)Samba服務(wù)器上的共享目錄進(jìn)行寫操作,即使你在smb.conf中允許了這項(xiàng)操作。
假設(shè)你已經(jīng)配置了共享目錄/share并允許用戶進(jìn)行讀寫,而你又不想關(guān)閉SELinux的話,可以試試以下操作:
程序代碼:
#/usr/sbin/setsebool -P allow_smbd_anon_write=1
#chcon -t public_content_rw_t /share
其中第一條語(yǔ)句設(shè)置SELinux放行標(biāo)記了public_content_rw_t的內(nèi)容,第二條語(yǔ)句把欲共享的/share目錄標(biāo)記為public_content_rw_t。
附SELinux資料:
selinux簡(jiǎn)介
SElinux 在linux內(nèi)核級(jí)別上提供了一個(gè)靈活的強(qiáng)制訪問(wèn)控制系統(tǒng)(MAC),這個(gè)強(qiáng)制訪問(wèn)控制系統(tǒng)是建立在自由訪問(wèn)控制系統(tǒng)(DAC)之上的。
DAC是指系統(tǒng)的安全訪問(wèn)控制都是由系統(tǒng)管理員root自由管理的,不是系統(tǒng)強(qiáng)制行為
MAC運(yùn)行的時(shí)候,比如一個(gè)應(yīng)用程序或者一個(gè)線程以某個(gè)用戶UID或者SUID運(yùn)行的時(shí)候同樣對(duì)一些其他的對(duì)象擁有訪問(wèn)控制限制,比如文件,套接子(sockets)或者其他的線程
通過(guò)運(yùn)行SElinux MAC內(nèi)核可以保護(hù)系統(tǒng)不受到惡意程序的侵犯,或者系統(tǒng)本身的bug不會(huì)給系統(tǒng)帶來(lái)致命影響(把影響限定在一定范圍內(nèi))
SElinux為每一個(gè)用戶,程序,進(jìn)程,還有文件定義了訪問(wèn)還有傳輸?shù)臋?quán)限。然后管理所有這些對(duì)象之間的交互關(guān)系
對(duì)于SELinux設(shè)定的對(duì)象全限是可以根據(jù)需要在安裝時(shí)候規(guī)定嚴(yán)格程度,或者完全禁用
在大多數(shù)情況下,SElinux對(duì)于用戶來(lái)說(shuō)是完全透明的,普通用戶根本感覺(jué)不到 Selinux的存在,只有系統(tǒng)管理員才需要對(duì)這些用戶環(huán)境,以及策略進(jìn)行考慮。這些策略可以按照需要寬松的部署或者應(yīng)用嚴(yán)格的限制,Selinux提供 了非常具體的控制策略,范圍覆蓋整個(gè)linux系統(tǒng)
比如,當(dāng)一個(gè)對(duì)象如應(yīng)用程序要訪問(wèn)一個(gè)文件對(duì)象,內(nèi)核中的控制程序檢查訪問(wèn)向量緩存 (AVC),從這里尋找目標(biāo)和對(duì)象的權(quán)限,如果在這里沒(méi)有發(fā)現(xiàn)權(quán)限定義,則繼續(xù)查詢安全定義的上下關(guān)聯(lián),以及文件權(quán)限,然后作出準(zhǔn)許訪問(wèn)以及拒絕訪問(wèn)的決 定。如果在var/log/messages出現(xiàn)avc: denied信息,則表明訪問(wèn)拒絕。
目標(biāo)和對(duì)象通過(guò)安裝的策略來(lái)決定自身的安全關(guān)聯(lián),同時(shí)這些安裝的策略也負(fù)責(zé)給系統(tǒng)產(chǎn)生安全列表提供信息。
除了運(yùn)行強(qiáng)制模式以外,SELinux可以運(yùn)行在許可模式,這時(shí)候,檢查AVC之后,拒絕的情況被記錄。Selinux不強(qiáng)制使用這種策略.
以下介紹一下SELinux相關(guān)的工具
/usr/bin/setenforce 修改SELinux的實(shí)時(shí)運(yùn)行模式
setenforce 1 設(shè)置SELinux 成為enforcing模式
setenforce 0 設(shè)置SELinux 成為permissive模式
如果要徹底禁用SELinux 需要在
/etc/sysconfig/selinux中設(shè)置參數(shù)selinux=0 ,
或者在/etc/grub.conf中添加這個(gè)參數(shù)
/usr/bin/setstatus -v總結(jié)
以上是生活随笔為你收集整理的Samba共享后不能访问,或者看不到文件,是selinux惹的祸的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深度解析容器化技术在广发证券交易系统的应
- 下一篇: 29 个你必须知道的 Linux 命令