Samba文件共享服務
Samba服務能夠實現 Linux 系統與 Windows 系統之間的文件共享工作。
一. 通過yum軟件倉庫安裝Samba服務程序
yum install samba
二. 創建用於訪問共享資源的賬戶信息,pdbedit命令用於管理SMB服務程序的賬戶信息數據庫。
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe)gid=1000(linuxprobe)groups=1000(linuxprobe)
[root@linuxprobe ~]# pdbedit -a -u linuxprobe
new password:此處輸入該賬戶在 **Samba** 服務數據庫中的密碼
retype new password:再次輸入密碼進行確認
三. 創建用於共享資源的文件目錄,在創建時,不僅要考慮到文件讀寫權限的問題,而且由於/home 目錄是系統中普通用戶的家目錄,因此還需要考慮應用於該目錄的 SELinux 安全上下文所帶來的限制。修改完畢后執行 restorecon 命令,讓應用於目錄的新 SELinux 安全上下文立即生效。
[root@linuxprobe ~]# mkdir /home/database
[root@linuxprobe ~]#chown -Rf linuxprobe:linuxprobe /home/database
[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /home/database
[root@linuxprobe ~]# restorecon -Rv /home/database
restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->
unconfined_u:object_r:samba_share_t:s0
四. 設置 SELinux 服務與策略,使其允許通過 Samba 服務程序訪問普通用戶家目錄。執行 getsebool 命令,篩選出所有與 Samba 服務程序相關的 SELinux 域策略,根據策略的名稱(和經驗)選擇出正確的策略條目進行開啟即可:
[root@linuxprobe ~]# getsebool -a | grep 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
[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on
五. Samba 服務程序的配置工作基本完畢。接下來重啟 smb 服務(Samba 服務程序在 Linux 系統中的名字為 smb)並清空 iptables 防火牆,然后就可以檢驗配置效果了。
[root@linuxprobe ~]# systemctl restart smb
[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.
target.wants/smb.service'
[root@linuxprobe ~]# iptables -F
[root@linuxprobe ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
六. 要在 Windows 系統中訪問共享資源,只需在 Windows 的“運行”命令框中輸入兩個反斜杠,然后再加服務器的 IP 地址即可,如: \\192.168.10.11
如果已經清空了 Linux 系統上 iptables 防火牆的默認策略(即執行 iptables -F 命令),現在就應該能看到 Samba 共享服務的登錄界面了。正確輸入 賬戶名以及使用 pdbedit 命令設置的密碼后,就可以登錄到共享界面中了.