天天看點

Linux--Samba

Samba

Samba是在Linux和UNIX系統上實作SMB協定的一個免費軟體,由伺服器及用戶端程式構成

SMB(Server Messages Block,資訊服務塊)

區域網路上共享檔案和列印機的一種通信協定,它為區域網路内的不同計算機之間提供檔案及列印機等資源的共享服務

SMB協定是客戶機/伺服器型協定,客戶機通過該協定可以通路伺服器上的共享檔案系統、列印機及其他資源

Samba不但能與區域網路絡主機分享資源,還能與全世界的電腦分享資源

伺服器端

yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64 -y

安裝 smb 用戶端、主程式、smb文法檢測等
Linux--Samba
Linux--Samba

systemctl start smb

開啟 smb

yum install cifs-utlis -y

Linux--Samba

netstat -antlupe | grep smb

檢視 smb 端口

smb 端口為 445 和 139

Linux--Samba

systemctl start firewalld

開啟防火牆

firewall-cmd --permanent --add-service=samba

添加 samba 服務

firewall-cmd --permanent --add-service=samba-client

添加 samba-client 服務

firewall-cmd --reload

Linux--Samba

firewall-cmd --list-all

檢視服務已開啟
Linux--Samba

伺服器端

useradd zhang

useradd westos

建立本地使用者 zhang 和 westos
Linux--Samba

smbpasswd -a westos

smbpasswd -a zhang

建立 westos 和 zhang 的 smb 使用者密碼
Linux--Samba

pdbedit -L

檢視以建立 smb 使用者

注意

smb 使用者必須是伺服器端本地使用者

Linux--Samba

測試端

yum install samba-client -y

安裝 smb 用戶端
Linux--Samba

yum install cifs-utlis -y

Linux--Samba

smbclient -L //172.25.254.130 -U zhang

Enter zhang's password:

檢視伺服器端 smb 使用者 zhang 所共享的資源,需要 smb 使用者 zhang 的密碼
Linux--Samba

smbclient //172.25.254.130/zhang -U zhang

Enter zhang's password:

進入 smb 使用者 zhang 共享的目錄内
Linux--Samba

!ls

檢視進入 smb 用戶端前, shell 目前目錄

Linux--Samba

ls

檢視 smb 使用者 zhang 目錄

put f1

目前 shell 所在目錄内有 f1 檔案

上傳至 smb 使用者 zhang 目錄内

Linux--Samba

伺服器端

cd /home/zhang

切換到使用者 zhang 家目錄下

ls

Linux--Samba

測試端

rm f1

删除 f1 檔案

ls

Linux--Samba

伺服器端

ls

f1 檔案已被删除
Linux--Samba

測試端

mkdir /mnt/zhang

建立挂載點

mount //172.25.254.130/zhang /mnt/zhang -o username=zhang,password=123

挂載伺服器端 smb 使用者 zhang 到 /mnt/zhang ,需要提供 smb 使用者 zhang 賬号密碼
Linux--Samba

cd /mnt/zhang/

切換到 /mnt/zhang/

ls

touch f{1..5}

建立f1–f5檔案

ls

Linux--Samba

伺服器端

cd /home/zhang

切換到 /home/zhang/

ls

可檢視到用戶端操作所建立的 f1–f5 檔案
Linux--Samba

測試端

smbclient -L //172.25.254.130/zhang -U zhang

檢視到域名為 [MYGROUP]
Linux--Samba

伺服器端

vim /etc/samba/smb.conf

workgroup = WESTOS

域名修改為 WESTOS

systemctl restart smb

Linux--Samba

測試端

smbclient -L //172.25.254.130/zhang -U zhang

域名已改變為 WESTOS
Linux--Samba

伺服器端

vim /etc/samba/smb.conf

修改smb配置檔案

hosts allow = 172.25.254.131

隻允許 172.25.254.131 通路

systemctl restart smb

Linux--Samba

測試端

smbclient -L //172.25.254.130/zhang -U zhang

Linux--Samba

172.25.254.130

smbclient -L //172.25.254.130/zhang -U zhang

禁止通路
Linux--Samba

vim /etc/samba/smb.conf

host deny =172.25.254.131

拒絕 172.25.254.131 通路

systemctl restart smb

Linux--Samba

vim /etc/samba/smb.conf

hosts allow = 172.25.254.

允許廣播域 172.25.254.0 – 172.25.254.255 通路
Linux--Samba

smb寫權限

getenforce

檢視SELinux

Disabled

關閉

vim /etc/sysconfig/selinux

Linux--Samba

SELINUX=enforcing

修改為強制級别
Linux--Samba

reboot

重新開機生效
Linux--Samba

getenforce

Enforing

Linux--Samba

方法一:

修改目錄及目錄内容安全上下文

mkdir /westos_smb

建立目錄

semanage fcontext -a -t samba_share_t '/westos_smb(/.*?)?'

打開目錄及目錄内容安全上下文
Linux--Samba

vim /etc/samba/smb.conf

編輯 samba 配置檔案
Linux--Samba

[WESTOS]

comment = Share Dirctory

備注(自定義)

path = /westos_smb

路徑

writable = yes

開啟寫權限

systemctl restart smb

Linux--Samba

setfacl -m u:westos:rwx /westos_smb/

使用者 westos 設定 acl 權限 對于 /westos_smb 目錄

setfacl -m u:zhang:rwx /westos_smb/

使用者 zhang 設定 acl 權限 對于 /westos_smb 目錄
Linux--Samba

getfacl /westos_smb

檢視 acl 權限
Linux--Samba

mount //172.25.254.130/WESTOS /mnt -o username=westos,password=123

挂載
Linux--Samba

cd /mnt

touch f1

Linux--Samba

rm -rf W*

Linux--Samba

方法二:

修改 SEBool

vim /etc/samba/smb.conf

[mnt]

comment = Share System mnt Dirctory

備注(自定義)

path = /mnt

路徑

writable = yes

開啟寫權限

systemctl restart smb

Linux--Samba

systemctl restart smb

Linux--Samba

mount //172.25.254.130/mnt /mnt -o username=westos,password=123

挂載
Linux--Samba

cd /mnt

touch f1

權限不夠
Linux--Samba

getsebool -a | grep samba

檢視SEBool
Linux--Samba

setsebool -P samba_export_all_rw=on

打開權限

getsebool -a | grep samba

檢視 samba SEBool 權限
Linux--Samba

cd /mnt

touch f1

ls

Linux--Samba

隐藏共享檔案目錄

vim /etc/samba/smb.conf

[WESTOS]

comment = Share Dirctory

備注(自定義)

path = /westos_smb

路徑

browseable = yes

關閉隐藏

systemctl restart smb

Linux--Samba

smbclient -L //172.25.254.130/WESTOS -U zhang

WESTOS 目錄可見
Linux--Samba

vim /etc/samba/smb.conf

[WESTOS]

comment = Share Dirctory

備注(自定義)

path = /westos_smb

路徑

browseable =no

開啟隐藏

systemctl restart smb

Linux--Samba

smbclient -L //172.25.254.130/WESTOS -U zhang

WESTOS 目錄隐藏
Linux--Samba

使用者以 root 身份登陸

vim /etc/samba/smb.conf

[WESTOS]

comment = Share Dirctory

備注(自定義)

path = /westos_smb

路徑

admin users = westos

root 身份

systemctl restart smb

Linux--Samba

mount //172.25.254.130/WESTOS /mnt -o username=westos,password=123

挂載
Linux--Samba
測試

cd /mnt

touch f1

ll

Linux--Samba

匿名使用者

vim /etc/samba/smb.conf

map to guest = bad user

Linux--Samba

[WESTOS]

comment = Share Dirctory

path = /westos_smb

writable = yes

guest ok = yes

systemctl restart smb

Linux--Samba

getenforce

Enforing

當 SELinux 為 Enforing 時需要修改 SEBool 權限

getsebool -a | grep samba

setsebool -P samba_export_all_rw=on

getsebool -a | grep samba

Linux--Samba

smbclient //172.25.254.130/WESTOS

匿名使用者無密碼,回車即可

ls

檢視 /WESTOS 目錄
Linux--Samba

!ls

檢視未開啟 smbclient 前,使用者目前目錄
Linux--Samba

mount //172.25.254.130/WESTOS /mnt -o username=guest

挂載
Linux--Samba
Linux--Samba

touch f2

ll

Linux--Samba

寫權限清單

服務端

vim /etc/smaba/smb.conf

write list = +leon

在寫權限清單裡添加 leon 使用者

leon 使用者 擁有寫權限

systemctl restart smb

Linux--Samba

測試端

mount //172.25.254.130/WESTOS /mnt -o username=leon,password=123

Linux--Samba

cd /mnt

Linux--Samba

touch f1

權限不夠
Linux--Samba

服務端

chmod 777 /westos_smb

Linux--Samba

測試端

touch f1

ll

Linux--Samba

umount /mnt

mount //172.25.254.130/WESTOS /mnt -o username=westos,password=123

更換 westos 使用者

cd /mnt

touch f2

權限不夠

因為沒有開啟 writable (寫)權限

在 write list 權限裡隻有 leon 使用者

Linux--Samba

服務端

vim /etc/smaba/smb.conf

valid users = @leon

在 leon 使用者組裡的所有使用者都擁有寫權限

systemctl restart smb

Linux--Samba

usermod -G leon westos

添加 westos 使用者到 leon 使用者組裡

id westos

Linux--Samba

測試端

touch f2

再次建立 f2 檔案

生成

Linux--Samba

繼續閱讀