Linux之Samba部署

1、Samba介紹

Samba 是在 Linux 和 UNIX 系統上實現 SMB 協議的一個免費軟件,由服務器及客戶端程序構成,SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它爲局域網內的不同計算機之間提供文件及打印機等資源的共享服務。

SMB 協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、 打印機及其他資源。通過設置“NetBIOS over TCP/IP”使得 Samba 不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。

2、Samba配置文件介紹

篩選Samba註釋配置⽂件

[root@samba-server ~]# grep -v '^#|^$' /etc/samba/smb.conf

[global]                                                                                                 //全局參數

                      workgroup = SAMB                                                   //⼯作組名稱

                      hosts allow = 192.168.56.                                       //表示允許IP或⽹段,允許使⽤通配符或主機名

                      interfaces = eth0                                                      //SambaServer監聽⽹卡, 也可以寫IP地址

                      max connections = 0                                              //最⼤連接數⽬, 超出拒絕, 0表示不限制

                      max log size = 50                                                     //定義⽇志⽂件的最⼤容量爲50KB

                      security = user                                                         //安全驗證⽅式,總共有4種

                                                                       //share:⽆需驗證身份, 簡單⽅便, 安全性差

                                                                       //user:需要驗證⽤戶密碼纔可訪問, 安全性⾼

                                                                       //server:需要通過三⽅服務驗證賬號密碼, (集中管理賬戶)

                                                                       //domain: 使⽤域控制器進⾏身份驗證

                      passdb backend = tdbsam                                 //定義⽤戶密碼的類型,共有3種

                                                                      //smbpasswd:爲系統⽤戶設置Samba服務程序的密碼

                                                                     //tdbsam:創建數據庫⽂件並使⽤pdbedit命令建⽴Samba服務程序的⽤戶

                                                                    //ldapsam: 基於LDAP服務進⾏賬戶驗證

                    printing = cups                                                     //設置Samba共享打印機的類型(bsd, sysv, plp, lprng, aix, hpux, qnx)

                    printcap name = cups                                       //設置共享打印機的配置⽂件

                    load printers = yes                                            //設置在Samba服務啓動時是否共享打印機設備

                    cups options = raw                                           //打印機的選項

爲了更⽅便查閱共享重要參數的功能,共享參數如下:

[共享名/訪問名]

             comment = 任意字符串

             path = 共享⽬錄路徑

             browseable = 指定該共享是否可以瀏覽

             writable = 指定該共享路徑是否可寫

             valid users = 允許訪問該共享的⽤戶

            invalid users = 禁⽌訪問該共享的⽤戶

            write list = 允許寫⼊該共享的⽤戶

           guest ok = 指定該共享是否允許guest賬戶訪問

3、Samba單用戶訪問配置

3.1 邏輯拓撲圖

image

3.2 環境準備

[root@samba-server ~]# cat /etc/redhat-release #查看系統版本

image

[root@samba-server ~]# uname -r #查看內核版本

image

[root@samba-server ~]# systemctl stop ebtables                  #關閉ebtables防火牆

[root@samba-server ~]#systemctl disable ebtables             #重啓不啓動ebtables防火牆

[root@samba-server ~]# systemctl status ebtables              #查看ebtables狀態

image

[root@samba-server ~]# ifconfig ens33|awk -F '[ :]+' 'NR==2{print $3}'        #查看IP地址

image

[root@samba-server ~]# hostname #查看主機名

image

3.3 配置Samba服務

1. 安裝samba服務

[root@samba-server ~]# yum -y install samba

image

2. 創建⽤於共享資源的⽂件⽬錄

[root@samba-server ~]# mkdir -p /data/samba/share

image

3. 創建系統賬戶,並設置samba密碼

[root@samba-server ~]# useradd chenjf

[root@samba-server ~]# smbpasswd -a chenjf

image

4. 修改配置文件,修改工作組模式,創建共享

[root@samba-server ~]# vim /etc/samba/smb.conf

image

image

5. 重啓服務

[root@samba-server ~]# systemctl restart smb

[root@samba-server ~]# systemctl enable smb

[root@samba-server ~]# systemctl status smb

image

6. 如果非得開啓firewall防火牆就使用一下命令開啓

[root@samba-server ~]# firewall-cmd --add-service=samba --permanent

[root@samba-server ~]# firewall-cmd –reload

image

3.4 客戶端訪問

3.4.1 Windows資源管理器訪問

1. 打開運行在運行界面輸入“\\samba-server IP”

image

2. 輸入賬戶名密碼

image

3. 進入samba共享目錄

image

4. 在share下創建一個文件test

image

3.4.2  Windows 映射到磁盤驅動器訪問

1. 打開資源管理器,點擊計算機

image

2. 點擊映射網絡驅動器

image

3. 打開資源管理器就可以看到這個網絡驅動器

image

4. 點擊進入到網絡驅動器,在其中創建一個目錄“chenjf”。

image

3.4.3 Linux臨時掛載訪問

1. 安裝samba客戶端軟件

[root@samba-client ~]# yum -y install samba-client cifs-utils

image

2. 創建一個掛載目錄

[root@samba-client ~]# mkdir /share

image

3. 臨時查看 SMB 服務端共享資源

[root@samba-client ~]# smbclient -L 192.168.1.242 -U chenjf

image

4. 掛載訪問

[root@samba-client ~]# mount -t cifs -o rw,user=chenjf,pass=vancen //192.168.1.242/share /share

image

也可以將登陸賬戶密碼保存⾄配置⽂件,可以免輸⼊密碼去訪問掛載

5. 創建相應⽂件, 並賦予安全權限

[root@samba-client ~]# vim /etc/samba/chenjf

username=chenjf

password=vancen

domain=vacnen

image

[root@samba-client ~]# chmod 600 /etc/samba/chenjf

image

6. 掛載時執⾏⽤戶密碼⽂件credentials=/etc/samba/chenjf

[root@samba-client ~]# mount -t cifs -o rw,credentials=/etc/samba/chenjf   //192.168.1.242/share   /share/

image

7. 進入掛載目錄創建一個文件

[root@samba-client ~]# cd /share/

[root@samba-client share]# touch happy

image

3.4.4  Linux自動掛載訪問

1. 安裝samba客戶端軟件

[root@samba-client ~]# yum -y install samba-client cifs-utils

image

2. 創建掛載點/mnt/share

[root@samba-client ~]# mkdir /mnt/share

[root@samba-client ~]# ls /mnt/

image

方法一、直接用戶密碼驗證

1. 編寫/etc/fstab配置文件使用用戶密碼掛載

[root@samba-client ~]# vim /etc/fstab

//192.168.1.242/share       /mnt/share      cifs      defaults,rw,user=chenjf,pass=vancen    0     0

image

2. 掛載所有設備

[root@samba-client ~]# mount -a

[root@samba-client ~]# df -h

image

方法二、已配置文件驗證

1. 編輯驗證密碼配置文件

[root@samba-client ~]# vim /etc/samba/chenjf

username=chenjf

password=vancen

domain=vacnen

image

2. 修改驗證密碼的配置文件的權限

[root@samba-client ~]# chmod 600 /etc/samba/chenjf

image

3. 編輯/etc/fstab/配置文件使用密碼配置文件

[root@samba-client ~]# vim /etc/fstab

//192.168.1.242/share /mnt/share cifs defaults,rw credentials=/etc/samba/chenjf 0 0

image

4. 掛載所有設備

[root@samba-client ~]# mount -a

[root@samba-client ~]# df –h

image

5. 進入掛載點,創建一個目錄

[root@samba-client ~]# cd /mnt/share/

[root@samba-client share]# mkdir share

[root@samba-client share]# ls

image

4、Samba多用戶訪問配置

在 Samba Server 服務器上, 共享 /data/samba/public ,實現對訪問掛載後的共享的每個⽤戶單獨的驗證,實現權限隔離。允許chenjf1能夠讀寫,允許chenjf2 能夠讀,允許chenjf3不能訪問

4.1 環境準備

基於samba單用戶的配置環境

4.2 配置Samba多用戶

1. 創建用戶並給用戶設置samba密碼

[root@samba-server ~]# useradd chenjf1

[root@samba-server ~]# useradd chenjf2

[root@samba-server ~]# useradd chenjf3

[root@samba-server ~]# smbpasswd -a chenjf1

[root@samba-server ~]# smbpasswd -a chenjf2

[root@samba-server ~]# smbpasswd -a chenjf3

image

此處使用腳本創建也可以

2. 創建掛載目錄

[root@samba-server ~]# mkdir /data/samba/public

[root@samba-server ~]# ls /data/samba/

image

3. 給用戶設置相應的權限

[root@samba-server ~]# setfacl -m u:chenjf1:rwx /data/samba/public/

[root@samba-server ~]# setfacl -m u:chenjf2:r-- /data/samba/public/

[root@samba-server ~]# setfacl -m u:chenjf3:--- /data/samba/public/

[root@samba-server ~]# getfacl /data/samba/public/

image

4. 編輯samba主配置文件,共享/data/samba/public

[root@samba-server ~]# vim /etc/samba/smb.conf

image

5. 使⽤testparm測試

[root@samba-server ~]# testparm

image

注意:testparm命令報錯:rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

解決思路:把用戶文件描述符的數量設置的比默認值高一些

6. 修改testparm屬性,

1、臨時修改

[root@samba-server ~]# ulimit -n 16384

2、永久修改

[root@samba-server ~]# echo "root - nofile 16384" >>/etc/security/limits.conf

image

7. 重啓samba服務

[root@samba-server ~]# systemctl restart smb nmb

[root@samba-server ~]# systemctl enable smb nmb

image

4.3 客戶端驗證

1. 安裝客戶端軟件

[root@samba-client ~]# yum -y install samba-client cifs-utils

image

2. 使用smbclient查看共享資源

[root@samba-client ~]# smbclient -L 192.168.1.242

image

3. 使用smbclient命令登陸用chenjf1驗證連接

[root@samba-client ~]# smbclient -U chenjf1 //192.168.1.242/public

image

4. 創建一個目錄chenjf1

smb: \> mkdir chenjf1

image

5. 使用smbclient命令登陸用chenjf2驗證連接

[root@samba-client ~]# smbclient -U chenjf2 //192.168.1.242/public

image

6. 創建一個目錄chenjf2

smb: \> mkdir chenjf2

image

7. 在chenjf2上查看public內的共享

image

8. 使用smbclient命令登陸用chenjf3驗證連接

[root@samba-client ~]# smbclient -U chenjf3 //192.168.1.242/public

image

9. 在/mnt/創建chenjf1,chenjf2,chenjf3

[root@samba-client ~]# mkdir /mnt/chenjf{1,2,3}

[root@samba-client ~]# ls /mnt/

image

10. 使用mount掛載訪問測試

[root@samba-client ~]# mount -t cifs -o username=chenjf1,pass=vancen //192.168.1.242/public /mnt/chenjf1

[root@samba-client ~]# mount -t cifs -o username=chenjf2,pass=vancen //192.168.1.242/public /mnt/chenjf2

[root@samba-client ~]# mount -t cifs -o username=chenjf3,pass=vancen //192.168.1.242/public /mnt/chenjf3

image

總結:chenjf1對共享的public目錄能夠讀寫,chenjf2對共享的public目錄能夠讀,chenjf3對共享的public目錄不能訪問

11. 查看目錄信息

[root@samba-client ~]# df –h

image

12. 開機自動掛載方式,編寫/etc/fstab配置文件

[root@samba-client ~]# vim /etc/fstab

//192.168.1.242/public /mnt/chenjf2 cifs defaults,rw,user=chenjf1,pass=vancen,_netdev 0 0

//192.168.1.242/public /mnt/chenjf2 cifs defaults,rw,user=chenjf2,pass=vancen,_netdev 0 0

image

註釋:掛載屬性 “_netdev”代表網絡設備,網絡聯通後才掛載此設備

13. 使用mount -a命令全部掛載

[root@samba-client ~]# mount –a

image

14. 查看掛載目錄

[root@samba-client ~]# df -h

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章