測試要求:
一、共享名爲shared,工做組爲magedu;
二、添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop爲附加組,ubuntu不屬於develop組;密碼均爲用戶名;
三、添加samba用戶gentoo,centos和ubuntu,密碼均爲「magedu」;
四、此samba共享shared僅容許develop組具備寫權限,其餘用戶只能以只讀方式詢問;
五、此samba共享服務僅容許來自172.16.0.0/16網絡的主機訪問;html
配置
samba服務器:172.16.20.241
一、首先安裝samba程序[root@localhost ~]# yum -y install samba
二、修改配置文件linux
[root@localhost ~]# vim /etc/samba/smb.conf 修改--Network Related Options--區域的配置 workgroup = magedu //配置工做組名 hosts allow = 172.16.0.0/16 //設置僅容許部分主機訪問samba服務 在配置文件底部添加以下配置信息 [shared] //共享名 path = /shared/ //共享路徑 comment = share for test // 共享信息 guest ok = no // 禁止來賓帳戶訪問 browseable = yes // 容許瀏覽共享資源 read only = yes // 訪問只讀 valid users = @develop,ubuntu // 僅容許develop組內用戶和ubuntu用戶訪問此共享資源,設置組時須要在組名前加上"@"符號 write list = @develop // 僅develop組內用戶在此共享目錄有寫權限,這裏須要注意的是,若是同時配置了read only = yes和write list,那麼生效的效果爲:write list指定的用戶可寫,其餘用戶只讀。
更詳細的行爲控制和參數設定,推薦一位大神的文章http://blog.sina.com.cn/s/blog_63c8c46401014uhx.html
此處也是參照了這篇文章裏的內容。
三、添加用戶ubuntu
[root@localhost ~]# group add develop [root@localhost ~]# useradd -G develop gentoo [root@localhost ~]# useradd -G develop centos [root@localhost ~]# useradd ubuntu // 添加系統用戶gentoo和centos並將這兩個用戶的附加組設置爲develop // 添加系統用戶ubuntu [root@localhost ~]# smbpasswd -a gentoo New SMB password: Retype new SMB password: Added user gentoo. [root@localhost ~]# smbpasswd -a centos New SMB password: Retype new SMB password: Added user centos. [root@localhost ~]# smbpasswd -a ubuntu New SMB password: Retype new SMB password: Added user ubuntu. [root@localhost ~]# // 將系統用戶gentoo,centos,ubuntu分別添加到samba的密碼文件中,成功samba服務的用戶
四、建立共享目錄並設置文件系統權限vim
[root@localhost ~]# mkdir /shared/ [root@localhost ~]# chmod -R o= /shared [root@localhost ~]# setfacl -m g:develop:rwx /shared [root@localhost ~]# setfacl -m u:ubuntu:rx /shared // 將其餘用戶的權限所有清空,提升安全性 // 因爲測試要求gentoo和centos可以在共享目錄中有寫權限,因此使用facl設置屬組develop對shared目錄具備讀寫執行權限,若是直接修改組權限,不靈活,且下降了安全性;對於目錄的執行權限,即cd進目錄,且能夠對此目錄使用ls -l命令 // 使用facl設置用戶ubuntu對shared目錄具備讀和執行權限,無寫權限
五、效果測試
在另外一臺linux主機上訪問此samba服務器:
測試centos用戶centos
[root@localhost ~]# smbclient \\172.16.20.241\shared -U centos Enter centos's password: Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-45.el6_9] smb: \> smb: \> ls . D 0 Thu Aug 24 14:04:35 2017 .. DR 0 Thu Aug 24 13:55:01 2017 35727 blocks of size 524288. 29964 blocks available smb: \> // 成功訪問shared目錄,使用ls命令查看共享目錄中的內容 smb: \> lcd /etc smb: \> put passwd putting file passwd as \passwd (1348.5 kb/s) (average 1348.6 kb/s) smb: \> ls . D 0 Thu Aug 24 14:05:27 2017 .. DR 0 Thu Aug 24 13:55:01 2017 passwd A 1381 Thu Aug 24 14:05:27 2017 35727 blocks of size 524288. 29964 blocks available smb: \> smb: \> rm passwd smb: \> ls . D 0 Thu Aug 24 14:05:35 2017 .. DR 0 Thu Aug 24 13:55:01 2017 35727 blocks of size 524288. 29964 blocks available smb: \> // 上傳和刪除passwd文件成功,說明具備寫權限
gentoo用戶已經測試,效果與centos用戶一致,不在此贅述。安全
測試ubuntu用戶服務器
[root@localhost ~]# smbclient //172.16.20.241/shared -U ubuntu Enter ubuntu's password: Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-45.el6_9] smb: \> ls . D 0 Thu Aug 24 14:10:36 2017 .. DR 0 Thu Aug 24 13:55:01 2017 passwd A 1381 Thu Aug 24 14:10:31 2017 issue A 47 Thu Aug 24 14:10:36 2017 35727 blocks of size 524288. 29964 blocks available smb: \> get passwd getting file \passwd of size 1381 as passwd (84.3 KiloBytes/sec) (average 84.3 KiloBytes/sec) smb: \> rm passwd NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \passwd NT_STATUS_MEDIA_WRITE_PROTECTED listing \passwd smb: \> put shadow NT_STATUS_ACCESS_DENIED opening remote file \shadow smb: \> // 能夠下載文件,沒法刪除和上傳文件,說明具備讀權限,沒有寫權限
總結:
以上設置完成了測試要求,不過第4題的要求:其餘用戶只讀,我這裏理解的是 centos和gentoo可寫,ubuntu只讀,其餘用戶和匿名用戶只讀,因此設置:
guest ok = no
valid users = @develop,ubuntu
若是理解爲centos和gentoo可寫,ubuntu和其餘用戶及匿名用戶爲只讀,那麼要設置爲:
guest ok = yes
刪除valid users 一列網絡
寫的比較潦草,若有遺漏錯誤和爭議之處,歡迎你們的批評指正和討論,謝謝。
還有些許地方不夠完整,繼續學習之後回來填坑。ide