SAMBA的配置及故障排除
- SAMBA
-
- 功能:
- 特點:
- 配置檔案路徑:
- SAMBA服務分類
- 端口和協定
- 安裝及配置
-
-
- 設定單獨的目錄指定某個使用者通路
- 生産環境配置
-
- 部署應用
-
- 建構lvm:
- 挂在分區
- 配置samba:
- 添加samba使用者,并将家目錄設定為要共享的檔案夾
- 設定目錄通路權限
- 維護:
- 匿名通路(基本不用)
-
- 故障排除
SAMBA
功能:
實作linux和windows之間跨平台共享的工具,實作區域網路内的共享,公司内網的更新和備份
共享伺服器。windows共享。
特點:
不需要下載下傳檔案,可以直接在伺服器上編輯檔案
配置檔案路徑:
vim /etc/samba/smb.conf
SAMBA服務分類
匿名通路:
使用者名和密碼通路
設定單獨的目錄指定某個使用者通路
端口和協定
TCP 139
TCP 445
安裝及配置
(安裝前檢查防火牆,selinux ,setenforce 0 是否關閉)
**安裝服務端和用戶端:**yum install samba samba-client samba-common -y
samba-common 包含一些指令
伺服器端 建立需要通路的檔案夾(不同部門建立不同的檔案夾)
設定單獨的目錄指定某個使用者通路
建立兩個共享目錄
mkdir /test/samba
mkdir /test/sale
建立samba的通路使用者
useradd smb1
useradd smb2
指定組建立使用者smb3 ,smb3跟smb2是一個組
useradd -g smb2 smb3
建立密碼:
smbpasswd -a smb1
smbpasswd -a smb2
smbpasswd -a smb3
修改配置檔案
smbshare隻給smb1使用者通路的權限
[smbshare] 表示ip通路時候的路徑
comment = Samba Share #描述
path = /test/samba #共享的目錄
browseable = no #是否可以預覽目錄檔案
public = no #是否公開,如果是yes也可以注釋掉
writable = yes #是否可以寫入
valid users = smb1 #設定通路的使用者
sale隻給smb2使用者通路的權限
[sale]
comment = Samba Share
path = /test/sale
browseable = no
#public = no
writable = yes
valid users = smb2
如果不需要對檔案夾進行限制,隻要把valid users = 删除掉即可
valid users = smbuser1 smbuser2 可以設定多個使用者,用空格分開
valid users = @smbuser2 @組名 表示限制組的使用者通路
對共享目錄的權限設定
read list = smbuser2 //隻讀
誰可寫,誰隻讀
writable =yes //可寫
read list = user或者group
read only = yes //隻讀
write list = user或者group
invalid users = user或者group 禁止通路共享目錄的使用者或者組
啟動服務:
systemctl start smb 啟動smb服務
systemctl enable smb 開機啟動
生産環境配置
功能:
共享伺服器。windows共享。
應用:
可以在windows上,使用共享檔案夾,像用本地的儲存設備一樣。
依賴區域網路帶寬。
百兆 --> 千兆
需求:
研發部
内部同僚
開發
測試
美工
其他部門
行政
人事
财務
銷售
…
需求的郵件或工單:
空間需求
開發-java 50G
測試 100G
美工 300G
行政 150G
人事 200G
财務 50G
如果不夠,可以擴充。
通路需求
直接可以在windows資料總管使用
隻允許部門内部人員通路,其他人任何權限都沒有
使用的賬号、密碼會提供
申請一個伺服器
硬碟 4塊 2塊做系統–160G 2塊做存儲–2T raid1
2塊 系統和存儲 2T raid1
安裝作業系統–centos7
部署應用
建構lvm:
建構可擴充的lvm分區,指定為xfs檔案格式
[[email protected] ~]# pvcreate /dev/sdb
[[email protected] ~]# vgcreate samba /dev/sdb
[[email protected] ~]# lvcreate -L 5G -n java samba
[[email protected] ~]# lvcreate -L 10G -n test samba
[[email protected] ~]# lvcreate -L 30G -n art samba
[[email protected] ~]# lvcreate -L 15G -n admin samba
[[email protected] ~]# lvcreate -L 20G -n hr samba
[[email protected] ~]# lvcreate -L 5G -n sar samba
mkfs.xfs /dev/samba/java
mkfs.xfs /dev/samba/test
mkfs.xfs /dev/samba/art
mkfs.xfs /dev/samba/admin
mkfs.xfs /dev/samba/hr
mkfs.xfs /dev/samba/sar
挂在分區
[[email protected] ~]# mkdir -p /samba/{java,test,art,admin,hr,sar}
[[email protected] ~]# vim /etc/fstab
/dev/mapper/samba-java /samba/java xfs defaults 0 0
/dev/mapper/samba-test /samba/test xfs defaults 0 0
/dev/mapper/samba-art /samba/art xfs defaults 0 0
/dev/mapper/samba-admin /samba/admin xfs defaults 0 0
/dev/mapper/samba-hr /samba/hr xfs defaults 0 0
/dev/mapper/samba-sar /samba/sar xfs defaults 0 0
[[email protected] ~]# mount -a
[[email protected] ~]# df -h | tail -6
/dev/mapper/samba-java 5.0G 33M 5.0G 1% /samba/java
/dev/mapper/samba-test 10G 33M 10G 1% /samba/test
/dev/mapper/samba-art 30G 33M 30G 1% /samba/art
/dev/mapper/samba-admin 15G 33M 15G 1% /samba/admin
/dev/mapper/samba-hr 20G 33M 20G 1% /samba/hr
/dev/mapper/samba-sar 5.0G 33M 5.0G 1% /samba/sar
配置samba:
安裝samba服務
分部門進行samba配置檔案設定
[[email protected] /etc/samba]# cp smb.conf smb.conf.java
[[email protected] /etc/samba]# cp smb.conf smb.conf.test
[[email protected] /etc/samba]# cp smb.conf smb.conf.art
[[email protected] /etc/samba]# cp smb.conf smb.conf.admin
[[email protected] /etc/samba]# cp smb.conf smb.conf.hr
[[email protected] /etc/samba]# cp smb.conf smb.conf.sar
[[email protected] /etc/samba]# vim smb.conf
主配置檔案不改
[[email protected] /etc/samba]# vim smb.conf.java
結尾添加
[java]
comment = java's share dir
path = /samba/java
write list = java
create mask = 0664
directory mask = 0775
[[email protected] /etc/samba]# vim smb.conf.test
結尾添加
[test]
comment = test's share dir
path = /samba/test
write list = test
create mask = 0664
directory mask = 0775
其他的,操作相同
添加samba使用者,并将家目錄設定為要共享的檔案夾
[[email protected] ~]# useradd java -d /samba/java
[[email protected] ~]# useradd test -d /samba/test
[[email protected] ~]# useradd art -d /samba/art
[[email protected] ~]# useradd admin -d /samba/admin
[[email protected] ~]# useradd hr -d /samba/hr
[[email protected] ~]# useradd sar -d /samba/sar
vim建立一個密碼檔案
[[email protected] ~]# cat pass
123456
123456
用非互動方式設定samba使用者,導入密碼
[[email protected] ~]# smbpasswd -s -a java < pass
Added user java.
[[email protected] ~]# smbpasswd -s -a test < pass
Added user test.
[[email protected] ~]# smbpasswd -s -a art < pass
Added user art.
[[email protected] ~]# smbpasswd -s -a admin < pass
Added user admin.
[[email protected] ~]# smbpasswd -s -a hr < pass
Added user hr.
[[email protected] ~]# smbpasswd -s -a sar < pass
Added user sar.
檢視samba使用者清單
[[email protected] ~]# pdbedit -L
java:1000:
art:1002:
hr:1004:
test:1001:
admin:1003:
sar:1005:
設定目錄通路權限
給檔案夾設定對應的使用者,組的權限
[[email protected] /samba]# chown java:java java/
[[email protected] /samba]# chown test:test test/
[[email protected] /samba]# chown art:art art/
[[email protected] /samba]# chown admin"admin admin/
[[email protected] /samba]# chown hr:hr hr/
[[email protected] /samba]# chown sar:sar sar/
[[email protected] ~]# systemctl start smb
[[email protected] ~]# systemctl enable smb
維護:
删除windows儲存的使用者憑據:
控制台 --> 使用者管理 --> 憑據管理器 --> 删除即可
删除windows儲存的使用者密碼資訊:
指令提示符 -->
net use * /del
Y
等待幾分鐘就可以了
在 我的電腦 資料總管 添加網絡位置
實作共享檔案夾直接儲存下來,可以通路
匿名通路(基本不用)
匿名通路的安全性較低,是以不建議配置
在global全局配置裡添加如下
map to guest = Bad User 匿名通路
故障排除
1.session setup failed: NT_STATUS_LOGON_FAILURE
該錯誤表示使用者有誤, 可能是使用者不存在, 也有可能是密碼錯誤, 或者使用者隻是在samba和系統的使用者中的一個地方存在,
總之是使用者和密碼有問題
-
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
這個錯誤則表示共享目錄有誤, 可能是目錄不存在, 或者權限不對
我的情況是這樣的. 我有一個明為xiaowang的使用者, 在xiaowang的主目錄下我建立了一個share目錄,
并且吧share添加到smb.conf中成為一個共享目錄myshare, 但是我有指定該共享目錄的有效使用者為guest(也是系統中的一個使用者),
結果guest沒有通路xiaowang主目錄下的檔案的權限. 現在我把share目錄健在home下就好使了.
windows通路提示這個
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB5EMjpWT3VlaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL1QDN4MDNwUTM2ETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
這種一般是windows本地已經有了其它的通路記錄
解決方法如下:
在window指令行cmd—輸入指令 net use 檢視記錄
清除所有通路的記錄 指令 net use * /del /y
在重新操作就可以重新輸入使用者密碼通路了
windows無法通路samba,linux可以通路samba.
同樣是windows本地政策的問題,進入系統資料庫
解決方法:
1、本地安全政策,本地政策-安全選項,需要修改成預設的值的修改方式:
查找系統資料庫浏覽到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
直接删除 LMCompatibilityLevel 鍵。确定删除後。
2、運作secpol.msc指令。打開本地安全政策。
3、檢視 網絡安全:LAN管理員身份驗證級别,安全設定已經變為預設“沒有定義”
修改後發現輸入賬戶密碼就可以直接通路了。
擴充
這是我的配置 大家一看就知道我的需求了,
使用者 design01 design02 為design 組
使用者 project01 project02為project組
我想讓design01 02 擁有本身自己的宿主目錄同僚都可以通路公共目錄 /workspace/samba/design
peoject同理
可現在 peoject design兩個目錄 可以被所有使用者看到 不過進入時候沒有權限 需要輸入密碼?
請問大家我哪裡配置的有錯誤
編輯/etc/samba/smb.conf
在[global]
加入hide unreadable=yes #對無read權限的使用者隐藏
或者hide unwriteable=yes #對無write權限的使用者隐藏
重新開機samba,OK
參考
pdbedit -L 檢視samba使用者清單
smbpasswd -a 使用者名 添加samba使用者并設定samba密碼
smbpasswd -x 使用者名 删除samba使用者
關于samba的詳細參數解釋