samba 文件共享 想必大家都知道 是什麼 ,其實說白了 就是 windows 和 linux 系統之間可以相互文件共享的一個軟件!
其次 ,這是 samba 服務器的搭建 也是我們紅帽rhce 考試裡的一項,所以必須要掌握!
環境 : rhel7
軟件 : samba
一、安裝軟件
[root@feixiangkeji ~]# yum install samba
二、開機自啟動,開啟服務
systemctl enable smb
systemctl start smb
三、添加防火牆策略
[root@feixiangkeji ~]# firewall-cmd --add-service=samba --permanent
[root@feixiangkeji ~]# firewall-cmd --reload
四、創建共享目錄
mkdir /share
mkdir /public
(我這裡創建兩個共享目錄,/public 是用來做匿名用戶,/share 是 feixiangkeji 用戶認證的共享目錄)
chmod 777 /share
chmod 777 /public
五、修改共享目錄上下文關係,設置布爾值
注意的是 : samba 服務的 上下文是 samba_share_t
semanage fcontext -a -t samba_share_t '/share(/.*)?'
semanage fcontext -a -t samba_share_t '/public(/.*)?'
restorecon -RFv /share
restorecon -RFv /public
getsebool -a | grep samba 查詢samba 的所有布爾值
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
我們要修改的就是我上面加粗的兩個
setsebool -P samba_export_all_ro on
setsebool -P samba_export_all_rw on
第六步、修改配置文件
vim /etc/samba/smb.conf
但是註釋信息行實在太多,不便於分析裡面的重要參數,因此先把主配置文件改個名字,然後使用cat命令讀入主配置文件,再在grep命令後面添加-v參數(反向選擇),分別去掉所有以井號(#)和分號(;)開頭的註釋信息行,對於剩餘的空白行可以使用^$參數來表示並進行反選過濾,最後把過濾後的可用參數信息通過重定向符覆蓋寫入到原始文件名稱中。執行過濾後剩下的Samba服務程序的參數並不複雜
cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
cat /etc/samba/smb.conf_bak | grep -v "^$ | grep -v "#" | grep -v ";" > /etc/samba/smb.conf
[root@feixiangkeji /]# cat /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
Samba服務程序中的參數以及作用
[global] | 參數 | 作用 |
workgroup = MYGROUP | #工作組名稱 | |
server string = Samba Server Version %v | #服務器介紹信息,參數%v為顯示SMB版本號 | |
log file = /var/log/samba/log.%m | #定義日誌文件的存放位置與名稱,參數%m為來訪的主機名 | |
max log size = 50 | #定義日誌文件的最大容量為50KB | |
security = user | #安全驗證的方式,總共有4種 | |
#share:來訪主機無需驗證口令;比較方便,但安全性很差 | samba 4 中 已經取消 share 這個模式 | |
#user:需驗證來訪主機提供的口令後才可以訪問;提升了安全性 | ||
| #server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理賬戶) | |
#domain:使用域控制器進行身份驗證 | ||
passdb backend = tdbsam | #定義用戶後臺的類型,共有3種 | |
#smbpasswd:使用smbpasswd命令為系統用戶設置Samba服務程序的密碼 | ||
#tdbsam:創建數據庫文件並使用pdbedit命令建立Samba服務程序的用戶 | ||
#ldapsam:基於LDAP服務進行賬戶驗證 | ||
| ||
[homes] | #共享參數 | |
comment = Home Directories | #描述信息 | |
browseable = no | #指定共享信息是否在“網上鄰居”中可見 | |
writable = yes | #定義是否可以執行寫入操作,與“read only”相反 |
我們只需要在最下面追加 就可以了。。。。。。。。。。。。
我們因為要做一個普通用戶共享和 匿名用戶共享,下面就是我的例子:
[share] | 共享名稱為share |
comment = Do not arbitrarily modify the database file | 警告用戶不要隨意修改數據庫 |
path = /share | 共享目錄為/share |
browseable = yes | 開啟“所有人可見” |
writable = no | 不允許寫入操作 |
write list = feixiangkeji | 但只允許 feixiangkeji 用戶寫入 |
(普通用戶共享的配置文件)
[public] | 共享名稱為public |
comment = This is a public directory | 這是一個公開的目錄 |
path = /public | 共享目錄為/public |
browseable = yes | 開啟“所有人可見” |
writable = yes | 允許寫入操作 |
public = yes | 公開,允許匿名訪問 |
(匿名用戶共享的配置文件)
補充說明:
samba4 相比較以前的 samba 3 有個重大的變化是 , security 四種驗證方式中 不再支持 share ,然而參數就要做調整
原來 :
security = share
現在 :
security = user
map to guest = Bad User
第七步: 給共享用戶添加密碼
[root@feixiangkeji ~]# yum install samba-client (給samba用戶添加密碼用到的軟件)
useradd -s /sbin/nologin feixiangkeji (添加smb 用戶)
smbpasswd -a feixiangkeji
連續兩次輸入密碼
第八步: 重啟服務
systemctl restart smb
第九步: 客戶端測試
創建文件 進行測試 !!!!
謝謝大家 !
歡迎大家在留言區評論!
閱讀更多 運維小弟 的文章