linux搭建smb、掛載smb、Windows共享
實現Linux系統之間共享文件資源以及在Linux系統與Windows系統之間共享文件
Samba軟件包的構成
- 服務端:samba
- 客戶端:samba-client
- 公共組件:samba-common
- Smbd:負責為客戶機提供服務器中共享資源(目錄和文件)的訪問,監聽139端口(smb協議),445端口(cifs協議)
- Nmbd:負責提供基於netblos協議的主機名稱解析,以便為windows網絡中的主機進行查詢服務,監聽137-138端口(netblos協議)
Samba服務的程序組件
主配置文件路徑
/etc/samba/smb.conf
配置文件參數解釋
[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:來訪主機無需驗證口令;比較方便,但安全性很差,7.0以上系統不支持share, 使用user模式,map to guest=bad user代替 |
|
|
#user:需驗證來訪主機提供的口令後才可以訪問;提升了安全性 |
|
|
#server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理賬戶) |
|
|
#domain:使用域控制器進行身份驗證 |
|
|
passdb backend = tdbsam |
#定義用戶後臺的類型,共有3種 |
|
#smbpasswd:使用smbpasswd命令為系統用戶設置Samba服務程序的密碼 |
|
|
#tdbsam:創建數據庫文件並使用pdbedit命令建立Samba服務程序的用戶 | |
|
#ldapsam:基於LDAP服務進行賬戶驗證 |
|
|
load printers = yes |
#設置在Samba服務啟動時是否共享 打印機設備 |
|
cups options = raw |
#打印機的選項 |
[homes] |
|
#共享參數 |
|
comment = Home Directories |
#描述信息 |
|
browseable = no |
#指定共享信息是否在“網上鄰居”中可見 |
|
writable = yes |
#定義是否可以執行寫入操作, 與“read only”相反 |
[printers] |
|
#打印機共享參數 |
|
comment = All Printers |
|
|
path = /var/spool/samba |
#共享文件的實際路徑(重要)。 |
|
browseable = no |
#網絡發現是否可見 |
|
guest ok = no |
#是否所有人可見,等同於"public"參數。 |
|
writable = no |
#是否允許寫入 |
|
printable = yes |
|
u 部署samba服務
匿名方式訪問
準備環境
setenforce 0 //關閉selinux
systemctl stop firewalld //關閉防火墻
1.搭建本地yum源。
2.使用yum方式安裝samba服務程序
yum install -y samba* //yum方式安裝samba服務
- 創建共享的目錄
- 編輯主配置文件設置匿名共享,設置共享目錄
- 重啟服務,使用windos訪問驗證,無法訪問請檢查iptable 防火墻
mkdir -p /var/public //創建要共享目錄
vim /etc/samba/smb.conf //編輯samba主配置文件
------------------添加或者修改紅色部分的參數-----------------
[global]
workgroup = SAMBA
security = user //7.0以下系統將user改為share
passdb backend = tdbsam
map to guest = bad user //7.0以上匿名訪問必加
[public] //共享目錄名稱
comment = public //共享描述
path = /var/public //共享目錄路徑
guest ok = yes //共享目錄是否所有人可見
read only = yes //是否只讀
browseable = yes //網絡發現是否可見
systemctl restart smb //重啟samba服務
用戶驗證的共享
案例:創建一個共享目錄/var/yonghu/,只有zhangsan和lisi可以訪問共享,只有zhangsan有可以寫入的權限
註意:創建共享用戶前需要有對應的系統用戶
- 創建共享用戶zhangsan、lisi,創建共享的目錄
- 修改smb配置文件,設置共享目錄
Useradd zhangsan //創建系統用戶zhangsan
Useradd lisi //創建系統用戶lisi
Pdbedit -a -u zhangsan //創建共享用戶zhangsan,-a添加-u指定用戶
Pdbedit -a -u lisi //創建共享用戶lisi,-a添加-u指定用戶
Mkdir /var/yonghu //創建共享目錄
vim /etc/samba/smb.conf //編輯samba主配置文件
------------------添加或修改紅色部分參數-------------------
[global]
workgroup = MYGROUP
security = user
passdb backend = tdbsam
map to guest = bad user //匿名訪問必加,否則需要密碼
[public]
comment = public
path = /var/public
guest ok = yes
[yonghu] //共享目錄名稱
comment = yonghu //描述
path = /var/yonghu //共享目錄路徑
public = no //是否所有人可見
read only = yes //是否只讀
valid users = zhangsan,lisi //哪些用戶可以訪問
write list = zhangsan //哪些用戶可以寫入,組加“@組名”
directory mask = 0755 //用戶上傳目錄權限為755
create mask = 0644 //用戶上傳文件權限為644
3.給予共享目錄777權限
Chmod -R 777 /var/yonghu //更改共享目錄的權限為777
4.重啟smb服務驗證權限
systemctl restart smb //重啟samba服務
windows清除smb的連接會話
net use //查看連接會話
net use * /del //清除連接會話
用戶映射的共享(安全性高)
正常情況下,一個共享賬號都有一個同名的系統賬號很不安全,可以使用映射的方式,將一個共享用戶映射為多個不同的名稱(別名),只需要通過共享用戶的別名和密碼就能訪問資源了,而不需要知道真正的共享用戶(系統用戶)名稱
默認的共享賬號映射文件位於:/etc/samba/smbusers
啟用映射功能,需要修改主配置文件,在全局配置加入:
username map=/etc/samba/smbusers
重啟服務即可生效
訪問地址限制
在global或者配置裏面添加hosts allow或者hosts deny即可
Hosts allow = 192.168.2. 172.16. //允許192.168.2.0,172.16.0.0網段訪問
Hosts deny = 192.168.3. 172.14. //拒絕192.168.3.0,172.14.0.0網段訪問
使用smbclient訪問共享
查詢共享資源列表
smbclient -L 192.168.2.162 -U administrator
匿名訪問共享文件夾
smbclient //192.168.2.223/public
使用用戶名、別名訪問共享
smbclient -U ls //192.168.2.223/zhangsan
掛載共享目錄
Linux下掛載samba共享目錄
1.使用yum安裝cifs-utils工具
yum install -y cifs-utils //yum安裝cifs-utils工具
2.使用smbclient工具查詢共享目錄
smbclient -L 192.168.2.224 //查詢2.224的共享目錄
匿名掛載方法
mount.cifs //192.168.2.223/public /ceshi
//將public目錄掛載到本地ceshi目錄
指定用戶掛載
mount.cifs //192.168.2.223/yonghu /ceshi/ -o username=zhangsan,password=aaa
//將yonghu目錄掛載到本地ceshi目錄,指定用戶名zhangsan
Linux下掛載windos共享目錄
1.使用smbclient工具查詢共享目錄
smbclient -L 192.168.2.224 //查詢2.224的共享目錄
2.掛載windos共享目錄
①mount -t cifs -o username=administrator,password=123 //192.168.2.162/d /ceshi/ //將d盤掛載到本地的ceshi目錄
②mount -t cifs -o username=administrator,password=666,vers=2.0 //192.168.9.1/test /media/windows
smb常見故障
註意:如果windows無法訪問,先使用其他客戶端或者linux測試是否能訪問,然後在排除故障
1.win7訪問Linux Samba的共享目錄提示“登錄失敗:用戶名或密碼錯誤”解決方法:
單擊”開始“-“運行”,輸入secpol.msc,打開“本地安全策略”,在本地安全策略窗口中依次打開“本地策略”-->“安全選項”,然後再右側的列表中找到“網絡安全:LAN管理器身份驗證級別”,把這個選項的值改為“發送 LM 和 NTLM – 如果已協商,則使用 NTLMv2會話安全”,最後應用確定,然後重新連接測試
linux搭建smb、掛載smb、Windows共享