1. 程式人生 > >Linux Engineer學習------Samba

Linux Engineer學習------Samba

star 所有 mic 讀取 white sta size 操作 獨立

實驗環境:

修改兩臺虛擬機防火墻默認區域為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