Linux Engineer學習------Samba
修改兩臺虛擬機防火墻默認區域為trusted:
[root@server0 ~]# firewall-cmd --set-default-zone=trusted
[root@desktop0 ~]# firewall-cmd --set-default-zone=trusted
1、samba
1.1簡述
Samba共享服務,跨平臺的共享(Windows與Linux)
– 用途:為客戶機提供共享使用的文件夾
– 協議:SMB(TCP 139)、CIFS(TCP 445)
? 所需軟件包:samba
? 系統服務:smb
? Samba用戶 —— 專用來訪問共享文件夾的用戶
– 采用獨立設置的密碼
– 但需要提前建立同名的系統用戶(可以不設密碼)
? 使用 pdbedit 管理工具
– 添加用戶:pdbedit -a 用戶名
– 查詢用戶:pdbedit -L [用戶名]
– 刪除用戶:pdbedit -x 用戶名
? 配置文件路徑 /etc/samba/smb.conf
[自定共享名]
path = 文件夾絕對路徑
public = no|yes //默認no
browseable = yes|no //默認yes
read only = yes|no //默認yes
write list = 用戶1 .. .. //默認無
valid users = 用戶1 .. .. //默認任何用戶
hosts allow = 客戶機地址 .. ..
hosts deny = 客戶機地址 .. ..
裝包、配置(修改主配置文件)、起服務
1.2具體操作
實驗1:通過samba發布共享目錄,並滿足以下條件
共享名稱和共享目錄為/common;工作組為STAFF;
允許172.25.0.0網段訪問;用戶harry能夠讀取共享中的內容
在服務端Server0上的操作:
1.安裝samba軟件,服務端軟件
2.建立Samba賬戶
[root@server0 ~]# useradd -s /sbin/nologin harry
[root@server0 ~]# pdbedit -a harry #添加設置Samba帳號
輸入密碼123
[root@server0 ~]# pdbedit -L #查看所有Samba賬戶
3.修改 /etc/samba/smb.conf(vim命令模式,/workgroup 全文查找)
[root@server0 ~]# mkdir /common #創建共享目錄
[root@server0 ~]# echo 123 > /common/a.txt #創建測試文件
[root@server0 ~]# vim /etc/samba/smb.conf
.......
workgroup = STAFF #設置工作組
.......
[common] #設置共享名
path = /common #設置共享的實際路徑
hosts allow = 172.25.0.0/24 #允許這個網段的訪問
4.啟動smb服務,設置為開機自起
[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb
在客戶端Desktop0上的操作
1.安裝軟件包:samba-client
2.列出共享資源
– smbclient -L 服務器地址
[root@desktop0 ~]# smbclient -L 172.25.0.11
Enter root's password: 直接回車
可以看到服務端共享出來的文件目錄
3.連接到共享文件夾
– smbclient -U 用戶名 //服務器地址/共享目錄名
[root@desktop0 ~]# smbclient -U harry //172.25.0.11/common
Enter harry's password: 輸入密碼123
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \>ls
NT_STATUS_ACCESS_DENIED listing \* #權限不夠訪問被拒
客戶端訪問服務端資源
1.服務端,服務的訪問控制
2.服務端,防火墻
3.服務端,SELinux策略
4.服務端,本地權限
SELinux策略,布爾值(開啟或關閉)
虛擬機Server0:開啟SELinux功能的開關
? getsebool 查看 SELinux 開關
[root@server0 ~]# getsebool -a | grep samba
samba_export_all_ro --> off
samba_export_all_rw --> off
? setsebool 控制 SELinux 開關
– 需要加 -P 選項才能實現永久設置
[root@server0 ~]# setsebool samba_export_all_ro on #開啟可讀權限
[root@server0 ~]# getsebool -a | grep samba
客戶端Desktop方便的訪問
[root@desktop0 ~]# mkdir /mnt/nsd01
[root@desktop0 ~]# ls /mnt/nsd01
安裝一個可以支持掛載Samba的軟件cifs-utils
[root@desktop0 ~]# yum -y install cifs-utils
mount -o username=harry,password=123 //172.25.0.11/common /mnt/nsd01/ #手動掛載
df -h
完成開機自動掛載
_netdev:在開機啟動時,先啟動完網絡服務,在掛載該設備
[root@desktop0 ~]# vim /etc/fstab
//172.25.0.11/common /mnt/nsd01 cifs username=harry,password=123,_netdev 0 0
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
[root@desktop0 ~]# touch /mnt/samba/d.txt
touch: 無法創建"/mnt/samba/d.txt": 權限不夠
實驗2:完成讀寫的Samba共享
服務端Server0
1.安裝samba軟件,服務端軟件
2.建立Samba賬戶
[root@server0 ~]# useradd -s /sbin/nologin chihiro
[root@server0 ~]# useradd -s /sbin/nologin kenji
[root@server0 ~]# pdbedit -a chihiro
[root@server0 ~]# pdbedit -a kenji
3.修改配置文件/etc/samba/smb.conf
[root@server0 ~]# mkdir /devops
[root@server0 ~]# touch /devops/b.txt
[root@server0 ~]# vim /etc/samba/smb.conf
[devops]
path = /devops
write list = chihiro #允許chihiro可以寫
4.重起smb服務
5.修改SELinux開關
[root@server0 ~]# getsebool -a | grep samba
[root@server0 ~]# setsebool samba_export_all_rw on
[root@server0 ~]# getsebool -a | grep samba
6.賦予chihiro本地權限
[root@server0 ~]# setfacl -m u:chihiro:rwx /devops/
[root@server0 ~]# getfacl /devops/
客戶端Desktop完成開機自動掛載
[root@desktop0 ~]# mkdir /mnt/nsd02
[root@desktop0 ~]# vim /etc/fstab
//172.25.0.11/devops /mnt/nsd02 cifs username=chihiro,password=123,_netdev 0 0
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
[root@desktop0 ~]# touch /mnt/samba/d.txt #成功
multiuser機制(多用戶的Samba掛載)
– multiuser,提供對客戶端多個用戶身份的區分支持
– sec=ntlmssp,提供NT局域網管理安全支持
客戶端Desktop完成開機自動掛載
[root@desktop0 /]# vim /etc/fstab (man mount.cifs)
//172.25.0.11/devops /mnt/nsd02 cifs username=kenji,password=123,_netdev,multiuser,sec=ntlmssp 0 0
[root@desktop0 /]# umount /mnt/nsd02
[root@desktop0 /]# mount -a
[root@desktop0 /]# df -h
[root@desktop0 /]# su - student
[student@desktop0 ~]$ touch /mnt/nsd02/10.txt #不成功 權限不夠
[student@desktop0 ~]$ cifscreds add -u chihiro 172.25.0.11 #以chihiro的身份連接
[student@desktop0 ~]$ touch /mnt/nsd02/10.txt #成功
[student@desktop0 ~]$ ls /mnt/nsd02
[student@desktop0 ~]$ exit
Sticky Bit
? 附加在其他人的 x 位上
– 其他人的權限標識會變為 t
– 適用於開放 w 權限的目錄,可以阻止用戶濫用 w 寫入
權限(禁止操作別人的文檔)
[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod u=rwx,g=rwx,o=rwx /public
[root@server0 ~]# ls -ld /public
[root@server0 ~]# chmod o+t /public
[root@server0 ~]# ls -ld /public
服務端:netstat -antp | grep smb
mount error 13 :permission deny 用戶名密碼不一致
Linux Engineer學習------Samba