1.1 問題vim
本例要求在虛擬機 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 13九、TCP 445
Samba服務端配置文件:/etc/samba/smb.conf
Samba共享帳號:存在獨立的帳號數據文件裏,必須有同名系統帳號(方便給權限)
Samba帳號管理工具:
pdbedit -a 用戶名
pdbedit -L [用戶名]
pdbedit -x 用戶名
測試Samba共享資源:
smbclient -L 服務器地址 【密碼爲空(直接回車)】
smbclient -U 用戶名 //服務器地址/共享名 【須要密碼】
1.3 步驟網絡
實現此案例須要按照以下步驟進行。tcp
步驟一:在服務器server0發佈Samba共享文件夾
1)安裝軟件包samba
[root@server0 ~]# yum -y install samba
.. ..ide
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 --> onui
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 = chihirorest
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 code
步驟二:在客戶機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.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.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
5)受權用戶[root@desktop0 ~]#chown nfsodboy.nfsodboy /mnt/nfsmount