前言
1、配置Samba服務為什么要關閉防火牆(firewalld)和Selinux?
在linux操作系統中默認開啟了防火牆,Selinux也處於啟動狀態,一般狀態為enforing;所以,在我們搭建任何服務(每個服務都有自己的端口),由於防火牆和Selinux的存在導致服務的端口被攔截了,雖然可以用命令查看服務的監聽端口,任然會訪問不到自己搭建的服務!
2、關閉防火牆和Selinux
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. //關閉防火牆開機自啟 [root@localhost ~]# vim /etc/selinux/config # 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 - No SELinux policy is loaded. SELINUX=enforcing //將enforcing換成disabled # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@localhost ~]# setenforce 0 //臨時關閉selinux,也可以重啟(永久生效) [root@localhost ~]# getenforce //與setenforce是一對,這個是查看selinux是否生效 Permissive
一、Samba服務
1、Samba服務介紹
1️⃣:服務全稱:Samba — SMB(Server Message Block服務器消息塊--微軟研發 CIFS)
2️⃣:服務功能:為網絡(局域網)中客戶機(Linux/Windows)提供文件和目錄資源共享
3️⃣:服務模式:C/S 客戶機服務器模式
4️⃣:模式的特點:服務的提供就需要在服務器端運行服務端程序,服務的訪問則需要在客戶機端運行客戶端程序
5️⃣:服務客戶端程序
Linux:smbclient(查看共享、訪問共享) mount.cifs == mount -t cifs
Windows:GUI-資源管理器(查看、訪問) 映射網絡驅動器
2、Samba服務相關軟件包
1️⃣:服務軟件包:samba
2️⃣:服務進程名:smbd(核心) 和 nmbd
smbd:提供文件和目錄共享,以及身份驗證(默認情況下,是基於IP地址的訪問共享)
nmbd:提供客戶端通過服務器主機名的方式訪問共享
3️⃣:服務端口號:
TCP:139和445(smbd) tcp端口相對應的服務是smbd服務,其作用是提供對服務器中文件、打印資源的共享訪問
UDP:137和138(nmbd) udp端口相對應的服務是nmbd服務,其作用是提供基於NetBIOS主機名稱的解析
3、Samba服務配置文件
1️⃣:服務配置主文件:/etc/samba/smb.conf (包括全局配置、共享配置[用戶目錄及打印機共享、自定義共享])
2️⃣:服務管理腳本文件:/etc/rc.d/init.d/smb | nmb
3️⃣:技術手冊:/usr/share/doc/samba-版本號(直接Tab兩下查看)
4、Samba主配置文件中相關參數介紹
1️⃣:SAMBA安全級別
share:匿名訪問,即客戶端訪問共享時不必輸入用戶名和密碼,較為常用
user:(默認)基於身份認證訪問,即客戶端訪問共享時必須輸入正確的用戶名和密碼,較為常用
server:使用指定主機進行身份驗證。即基於遠程主機完成認證的訪問
domain:使用指定域控制器進行身份驗證。即基於遠程主機完成認證的訪問
2️⃣:配置文件中規則:
#號開頭的行為注釋行
;號開頭的行為備用設置參數,需要啟用時,刪除分號
設置參數的方式為 參數 = 值 (等於號前后各有一個空格)
可采用縮進功能,僅使文檔清晰
3️⃣:常用參數及意義
workgroup = MYGROUP //工作組名稱
server string = qiangge Samba Server //服務器描述
netbios name = SMBSERVER1 //SAMBA服務NETBIOS名,可與hostname不同
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 //提供服務的接口,可寫接口名,IP地址等
hosts allow = 127. 192.168.12. 192.168.13. //允許訪問服務的客戶端,可寫網絡號,主機IP地址等
log file = /var/log/samba/log.%m //以每一個客戶機建立一個獨立的日志文件,%m代表以客戶機主機名或IP地址為文件名的組成部分
max log size = 50 //日志文件的大小,單位默認為KB
security = user
share:匿名訪問,即客戶端訪問共享時不必輸入用戶名和密碼,較為常用
user:基於身份認證訪問,即客戶端訪問共享時必須輸入正確的用戶名和密碼,較為常用
server:使用指定主機進行身份驗證。即基於遠程主機完成認證的訪問
domain:使用指定域控制器進行身份驗證。即基於遠程主機完成認證的訪問
passdb backend = tdbsam //SAMBA用戶密碼數據庫文件
5、關於共享目錄的說明
[shared_name] [共享資源的共享名稱] //共享目錄名稱是客戶端訪問共享時所用的名稱,建議與物理目錄名稱不同更安全
comment = Comment String 共享文件描述
* path = /path/to/share_directory 共享文件的絕對路徑
allow hosts = host(subnet) 允許訪問此共享資源的主機列表
deny hosts = host(subnet) 禁止訪問此共享資源的主機列表
* writable = yes|no 是否有寫權限
* browseable = yes|no 是否瀏覽權限(yes為可見共享,no為隱藏共享)
user = user(@group) 設置所有可能使用該共享資源的用戶列表
valid users = user(@group) 指定能夠使用該共享資源的用戶和組列表
invalid users = user(@group) 指定不能夠使用該共享資源的用戶和組
read list = user(@group) 設置能夠讀取該共享資源的用戶列表
write list = user(@group) 設置對該共享資源具有寫權限的用戶列表
admin list = user(@group) 設置對共享資源具有管理權限的用戶列表
* public = yes|no 指明該共享資源是否能給游客帳號訪問
guest ok = yes|no 與public相同
hide dot files = yes|no 是否隱藏以“.”號開頭的文件
create mode = 0755 指明新建立的文件的屬性,一般是0755
directory mode = 0755 指明新建立的目錄的屬性,一般是0755
sync always = yes|no 指明寫操作后是否進行同步操作
short preserve case = yes|no 指明忽略文件名大小寫
preserve case = yes|no 指明保持文件名大小寫
case sensitive = yes|no 指明是否對大小寫敏感
mangle case = yes|no 指明混合大小寫
default case = upper|lower 指明缺省的文件名是全部大寫還是小寫
force user = lt 強制指定建立文件的屬主是誰
wide links = yes|no 指明是否允許共享外符號連接
max connections = 100 設定同時連接數是n
delete readonly = yes|no 指明能否刪除已經被定義為只讀的文件
root preexec = /bin/mount -t iso9660 /dev/cdrom /mnt/cdrom 自動掛光驅
root postexec = /bin/umount /mnt/cdrom 自動