linux的samba服務部署
#################
1.SMB的用處和怎麼登陸
#################
用處是通過儲存分離保護伺服器的穩定
用法
server為伺服器
172.25.254.128
設定好yum源
安裝samba服務
yum install samba samba-common samba-client.x86_64 -y
開啟服務
關閉火牆
關閉核心
新增一個使用者
新增使用者身份
smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
檢視有什麼使用者
pdbedit -L
怎麼刪除
smbpasswd -x westos
為了實驗需要刪除後重新新增westos
客戶端為desktop
172.25.254.228
配置好yum源
關閉火牆
關閉核心
安裝samba服務
yum install samba-client.x86_64 -y
匿名訪問
smbclient -L //172.25.254.128
不輸入密碼直接回車
直接訪問
smbclient //172.25.254.128/westos -U westos
put上傳服務端的/home/westos/檔案到westos下
!ls能檢視服務端/home/westos下的檔案
掛載到/mnt下訪問能在客戶端建立檔案儲存到服務端
mount -o username=westos,password=westos
此時在客戶端/mnt下建立的檔案儲存在服務端的/home/westos下
在服務端/home/westos/下檢視檔案
開機自動掛載,修改/etc/fstab檔案
#############################
2.怎麼設定smb配置檔案和核心允許訪問
#############################
開啟配置檔案
vim /etc/samba/smb.conf
更改組
記得重啟服務
systemctl restart smb.service
開啟核心
嘗試登陸,此時無法登陸
conf檔案的30行有提示
按照提示開啟開關
setsebool -P samba_enable_home_dirs on
開啟配置檔案
在任意位置寫下
hosts allow = 172.25.254.228
意思是允許某個ip登陸
這就是白名單
重啟服務後在客戶端登陸
任意位置寫下
意思是允許某個ip不能登陸
hosts deny = 172.25.254.228
這就是黑名單
重啟服務後在客戶端登陸
##################
3.設定共享路徑
##################
開啟smb.conf檔案
[linux]
324 comment = westos dir share
325 path = /westos
退出儲存後重讀服務
在根下建立目錄westos
mkdir /westos
登陸後進不去
原因是核心檢查安全上下文不匹配
修改westos的安全上下文後就能進去了
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF /westos/
檢視安全上下文
smbclient //172.25.254.128/linux -U westos
但有一種情況就是我們設定共享路徑為系統檔案,
由於有別的服務會匹配原安全上下文我們不能隨意修改
326
327 [opt]
328 comment = opt
329 path = /mnt
退出儲存後重讀服務
匿名使用者登入失敗後能顯示我們新增的目錄
smbclient -L //172.25.254.128
smbclient //172.25.254.128/opt -U westos
發現登陸進不去,原因是/mnt下的安全上下文不匹配
我們需要修改核心開關,使服務端的核心開啟samba所有的讀許可權
setsebool -P samba_export_all_ro on
smbclient //172.25.254.128/opt -U westos再次登陸
此時無法上傳檔案原因是這個目錄下寫檔案的許可權沒有開啟
########################
4.設定使用者在目錄下的許可權
########################
配置/etc/samb/sam.conf
126 map to guest = bad user
[linux]
324 comment = westos dir hare
325 path = /westos
326 writable = yes
327 ; write list = @westos
328 ; valid users = +student
329 browseable = yes
330 ; admin users = student
331 guest ok = ye
map to guest = bad user
設定匿名使用者以什麼身份登陸
設定在此目錄下可寫
writable = yes
設定在此目錄下可寫的組
write list = @westos
設定只能登陸此目錄的使用者身份
valid users = +student
設定能在此目錄下瀏覽就是ls
browseable = yes
設定此目錄下什麼身份的使用者有root許可權
admin users = student
設定允許匿名使用者登陸
guest ok = yes
於此同時設定126行匿名以什麼身份登陸
(按照規範應該寫在126行,但寫在別的地方也能生效)**
(1)測試匿名登陸上傳檔案的效果
登陸命令為
smbclient //172.25.254.128/linux
上傳一個檔案anaconda-ks.cfg 有報錯
這個錯誤是因為服務端/westos這個目錄的許可權不夠
修改許可權為777
修改後再次登陸上傳
在服務端檢視檔案許可權,nobody意思是匿名使用者
(2)測試組可寫許可權
新增一個組
westos屬於這個組
設定為組可寫write list = @westos
完成後重啟服務
此時匿名使用者無法上傳檔案
此時屬於westos組的westos能在此目錄寫檔案(上傳和刪除)
(3)測試valid users = +student只有student能登陸
設定配置檔案
新增使用者student的身份
用westos登陸被拒絕
用student登陸成功
(4)設定某使用者在這個目錄下有root權力
表現方式為上傳檔案的所有人為root
以westos的身份上傳檔案
檢視上傳的檔案的所有人
################
5.多使用者不交叉登陸
################
在客戶端以westos身份建立檔案後客戶端的普通使用者student可以不通過認證檢視檔案,這不合理,我們需要設定一個認證方式
在服務端只保留瀏覽和寫許可權
加入一個使用者身份student
在客戶端
yum install cifs-utils
設定客戶端root以westos的身份登陸
vim /root/smbpass
username=westos
password=westos
chmod 600 /root/smbpass
掛載登陸服務端
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.128/linux /mnt/
移動到mnt下
cd /mnt
建立root檔案
touch root
切換到student
su - student
移動到mnt
cd /mnt
檢視檔案發現被拒絕
ls
為客戶端的student新增在服務端的身份,
此時的student是服務端的student身份,
密碼為服務端設定的密碼
cifscreds add -u student 172.25.254.128
檢視檔案
ls
如果密碼錯誤需要清除之前登陸的帳號
cifscreds clearall