多用戶Samba掛載

案例1:配置SMB文件夾共享
案例2:多用戶Samba掛載
案例3:普通NFS共享的實現

1 案例1:配置SMB文件夾共享
1.1 問題

本例要求在虛擬機 server0 上發佈兩個共享文件夾,具體要求如下:

此服務器必須是 STAFF 工作組的一個成員
發佈目錄 /common,共享名爲 common
發佈目錄 /devops,共享名爲 devops
這兩個共享必須是可瀏覽的,只有 example.com 域內的客戶端可以訪問
用戶 harry 對共享 common 只讀,密碼是 migwhisk
用戶 kenji 對共享 devops 只讀,密碼是 atenorth
用戶 chihiro 對共享 devops 可讀寫,密碼是atenorth

1.2 方案

Samba的用途:爲多個客戶機提供共享使用的文件夾。

Samba服務端:軟件包samba、系統服務smb

Samba客戶端:軟件包samba-client和cifs-utils、客戶端工具smbclient

傳輸協議及端口:TCP 139、TCP 445

Samba服務端配置文件:/etc/samba/smb.conf

Samba共享賬號:存在獨立的賬號數據文件裏,必須有同名系統賬號(方便給權限)

Samba賬號管理工具:

pdbedit -a 用戶名
pdbedit -L [用戶名]
pdbedit -x 用戶名

測試Samba共享資源:

smbclient -L 服務器地址 【密碼爲空(直接回車)】
smbclient -U 用戶名 //服務器地址/共享名 【需要密碼】

1.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:在服務器server0發佈Samba共享文件夾

1)安裝軟件包samba

[root@server0 ~]# yum  -y  install  samba
.. ..

2)創建共享賬號

添加共享賬號harry,密碼爲migwhisk:

[root@server0 ~]# useradd  harry
[root@server0 ~]# pdbedit  -a  harry                  //根據提示設好密碼migwhisk
new password: 
retype new password:

添加共享賬號kenji,密碼爲atenorth:

[root@server0 ~]# useradd  kenji
[root@server0 ~]# pdbedit  -a  kenji                  //根據提示設好密碼atenorth
new password: 
retype new password:

添加共享賬號chihiro,密碼爲atenorth:

[root@server0 ~]# useradd  chihiro
[root@server0 ~]# pdbedit  -a  chihiro              //根據提示設好密碼atenorth
new password: 
retype new password:

確認共享賬號:

[root@server0 ~]# pdbedit  -L
harry:1003:
chihiro:1005:
kenji:1004:

3)準備共享文件夾

[root@server0 ~]# mkdir  /common
[root@server0 ~]# mkdir  /devops
[root@server0 ~]# setfacl  -m  u:chihiro:rwx  /devops          //配置寫入權限

4)調整SELinux開關策略,允許發佈可寫的Samba共享資源

[root@server0 ~]# getsebool  -a  |  grep ^samba_exp          //默認配置
samba_export_all_ro --> off
samba_export_all_rw --> off
[root@server0 ~]# setsebool  -P  samba_export_all_rw=on         //永久打開設置
[root@server0 ~]# getsebool  -a  |  grep ^samba_exp          //查看結果
samba_export_all_ro --> off
samba_export_all_rw --> on

5)配置共享目錄

[root@server0 ~]# vim  /etc/samba/smb.conf
[global]
    workgroup = STAFF
    .. ..
[common]
    path = /common
    hosts allow = 172.25.0.0/24
[devops]
    path = /devops
    hosts allow = 172.25.0.0/24
    write list = chihiro

6)啓動系統服務smb,並設置開機自啓

[root@server0 ~]# systemctl  restart  smb
[root@server0 ~]# systemctl  enable  smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server0 ~]# netstat  -antpu  |  grep  smb
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      4709/smbd 
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      4709/smbd 

步驟二:在客戶機desktop0測試Samba共享資源

1)安裝軟件包samba-client

[root@server0 ~]# yum  -y  install  samba-client
.. ..

2)瀏覽目標主機提供了哪些共享資源

[root@desktop0 ~]# smbclient  -L  server0.example.com
Enter root's password:                          //此處無需輸入密碼,直接回車
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
    Sharename       Type      Comment
    ---------       ----      -------
    common          Disk      
    devops          Disk      
    IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
    Server               Comment
    ---------            -------
    Workgroup            Master
    ---------            -------

3)連接到目標主機的共享目錄

[root@desktop0 ~]# smbclient  -U  harry  //server0.example.com/common
Enter harry's password:                              //輸入harry的密碼
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls                                         //檢查是否可列出目錄內容
  .                                   D        0  Sun Nov 27 03:07:29 2016
  ..                                  D        0  Sun Nov 27 03:07:32 2016
        40913 blocks of size 262144. 27826 blocks available
smb: \> quit                                         //退出smb:\>交互環境
[root@desktop0 ~]#

2 案例2:多用戶Samba掛載
2.1 問題

本例要求在虛擬機 desktop0 上訪問 server0 提供的共享 devops,特性如下:

將此共享永久掛載在 /mnt/dev 目錄
掛載時以用戶 kenji 作爲認證
必要的時候,任何普通用戶都可以通過用戶 chihiro 來臨時獲取寫的權限

2.2 方案

Samba客戶端的multiuser掛載:支持切換訪問Samba共享的用戶身份,但不需要重新掛載共享資源。掛載參數需要添加“multiuser,sec=ntlmssp”,客戶機上的普通用戶可以通過cifscreds命令提交新的身份憑據。

在客戶端掛載Samba共享目錄,需要軟件包cifs-utils的支持。

爲訪問網絡資源配置開機掛載時,注意添加參數“_netdev”,表示等客戶機網絡配置可用以後才掛載對應資源。
2.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:掛載Samba共享目錄

1)創建掛載點

[root@desktop0 ~]# mkdir  /mnt/dev

2)安裝cifs-utils軟件包

[root@desktop0 ~]# yum  -y  install  cifs-utils
.. ..

3)配置開機掛載

[root@desktop0 ~]# vim  /etc/fstab
.. ..
//server0.example.com/devops    /mnt/dev        cifs    username=kenji,password=atenorth,_netdev     0     0

4)測試掛載配置

[root@desktop0 ~]# mount  -a
[root@desktop0 ~]# df  -hT  /mnt/dev
Filesystem                   Type  Size  Used Avail Use% Mounted on
//server0.example.com/devops cifs   10G  3.2G  6.8G  32% /mnt/dev

步驟二:啓用multiuser多用戶支持

1)修改掛載配置,添加多用戶支持

[root@desktop0 ~]# vim  /etc/fstab
.. ..
//server0.example.com/devops    /mnt/dev    cifs    username=kenji,password=atenorth,multiuser,sec=ntlmssp,_netdev 0 0
[root@desktop0 ~]# umount  /mnt/dev                 //卸載此共享
[root@desktop0 ~]# mount  /mnt/dev                 //重新掛載此共享

2)驗證多用戶訪問

切換到普通用戶student驗證,無權訪問掛載點/mnt/dev:

[root@desktop0 ~]# su - student
Last login: Sun Nov 27 03:51:32 CST 2016 on pts/0
[student@desktop0 ~]$ ls /mnt/dev
ls: cannot access /mnt/dev: Permission denied

以共享用戶chihiro身份提交新的訪問憑據,再次驗證,對掛載點/mnt/dev可讀寫:

[student@desktop0 ~]$ cifscreds  -u  chihiro  add  server0.example.com
Password:                                           //輸入共享賬號chihiro的密碼
[student@desktop0 ~]$ touch  /mnt/dev/a.txt
[student@desktop0 ~]$ ls  /mnt/dev/a.txt 
/mnt/dev/a.txt

3 案例3:普通NFS共享的實現
3.1 問題

本例要求在虛擬機 server0 上配置NFS服務,完成以下任務:

只讀的方式共享目錄 /public,只能被 example.com 域中的系統訪問
可讀寫共享目錄/protected,能被 example.com 域中的系統訪問

然後在虛擬機 desktop0 上訪問NFS共享目錄

將 server0 的 /public 掛到本地 /mnt/nfsmount
這些文件系統在系統啓動時自動掛載

3.2 方案

對於普通NFS共享來說:

服務端需要運行系統服務 nfs-server.service
客戶端不需要運行特定的系統服務

配置NFS共享目錄的記錄格式:

文件夾絕對路徑        客戶地址1(ro或rw等控制參數)  客戶地址2(ro或rw等控制參數) .. ..

3.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:在server0上發佈NFS共享目錄

1)準備需要共享的文件夾

[root@server0 ~]# mkdir  /public
[root@server0 ~]# mkdir  /protected

2)建立NFS共享配置

[root@server0 ~]# vim  /etc/exports
/public         172.25.0.0/24(ro)
/protected      172.25.0.0/24(rw)

3)啓動系統服務nfs-server,並設置開機自啓

[root@server0 ~]# systemctl  restart  nfs-server
[root@server0 ~]# systemctl  enable  nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

步驟二:在desktop0上掛載NFS共享目錄/public

1)創建掛載點

[root@desktop0 ~]# mkdir  /mnt/nfsmount

2)列出server0上提供的NFS共享資源

[root@desktop0 ~]# showmount  -e  server0.example.com
Export list for server0.example.com:
/protected 172.25.0.0/24
/public    172.25.0.0/24

3)配置開機掛載server0的NFS共享目錄/public

[root@desktop0 ~]# vim  /etc/fstab
.. ..
server0.example.com:/public     /mnt/nfsmount   nfs     _netdev   0  0

4)測試掛載配置

[root@desktop0 ~]# mount  -a
[root@desktop0 ~]# df  -hT  /mnt/nfsmount/
Filesystem                  Type  Size  Used Avail Use% Mounted on
server0.example.com:/public nfs4   10G  3.2G  6.8G  32% /mnt/nfsmount
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章