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