天天看點

smb、nfs共享服務1 案例1:配置SMB檔案夾共享2 案例2:多使用者Samba挂載3 案例3:普通NFS共享的實作

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

添加共享賬号chihiro,密碼為atenorth:

[root@server0 ~]# useradd chihiro

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

确認共享賬号:

[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_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

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

server comment

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.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)修改挂載配置,添加多使用者支援

//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.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

[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

server0.example.com:/public /mnt/nfsmount nfs _netdev 0 0

[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

5)授權使用者

[root@desktop0 ~]#chown nfsodboy.nfsodboy /mnt/nfsmount

繼續閱讀