samba服務搭建測試

測試要求:
1、共享名爲shared,工作組爲magedu;
2、添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop爲附加組,ubuntu不屬於develop組;密碼均爲用戶名;
3、添加samba用戶gentoo,centos和ubuntu,密碼均爲“magedu”;
4、此samba共享shared僅允許develop組具有寫權限,其他用戶只能以只讀方式詢問;
5、此samba共享服務僅允許來自172.16.0.0/16網絡的主機訪問;

配置
samba服務器:172.16.20.241
1、首先安裝samba程序
[root@localhost ~]# yum -y install samba
2、修改配置文件

[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
此處也是參照了這篇文章裏的內容。
3、添加用戶

[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服務的用戶

4、創建共享目錄並設置文件系統權限

[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目錄具有讀和執行權限,無寫權限

5、效果測試
在另一臺linux主機上訪問此samba服務器:
測試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 一列

寫的比較潦草,如有遺漏錯誤和爭議之處,歡迎大家的批評指正和討論,謝謝。
還有些許地方不夠完整,繼續學習以後回來填坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章