歡迎您光臨本站 註冊首頁

samba實現複雜的用戶許可權

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

samba實現複雜的用戶許可權

samba實現複雜的用戶許可權

(原來看過samba實現複雜的用戶許可權的文章,一直沒有時間做試驗,今天有空,把整個過程記錄下來,並且在網上發現大部分教程都是基於share用的,對於文件夾許可權的控制搞的頭暈,所以這次我以user為示例,記錄下我的試驗,如有什麼不正確的地方,請斧正!)

我建了第一個管理上傳用戶update,普通用戶zbhdpx ,還有兩個組:business和tech,每各組用戶:bus01,bus02和tech01,tech02.。

實現的最終目的:
1.是要所有的共享文件夾update用戶都可以寫入,查看。
2.普通用戶zbhdpx,不可以查看update用戶,business和tech組的文件夾(disk,business,tech),只可以在公有目錄save讀取寫入文件,和讀取普通目錄mp3,data。
3.business和tech組用戶可以讀取寫入business,tech,save,可以查看mp3,data目錄,而不可以查看寫入對方組和disk文件夾。

先添加系統組:
Groupadd business
Groupadd tech
添加系統用戶:
Useradd update
Useradd zbhdpx
useradd -g business -d /home/bus01 -s /bin/false bus02
useradd -g business -d /home/bus02 -s /bin/false bus02
useradd -g tech -d /home/tech01 -s /bin/false tech01
useradd -g tech -d /home/tech02 -s /bin/false tech02
然後再添加到samba用戶:
smbpasswd -a update
New SMB password:
Retype new SMB password:
Added user update.
以上示例,添加全部用戶:
smbpasswd -a zbhdpx
smbpasswd -a bus01       
smbpasswd -a bus02       
smbpasswd -a tech01
smbpasswd -a tech02.
然後我們編輯我們的smb.conf主文件:


#                        File server For TEST
#                   http://www.zocc.net.cn    QQ:396362184
#======================= Global Settings =====================================

#   unix charset = cp936
#   dos charset = cp936
#   display charset = cp936
   workgroup = WORKGROUP
   netbios name = Server
   server string = Test File Server
   guest account = nobody
   log file = /var/log/samba/%m.log
   max log size = 50
   security = user
   encrypt passwords = yes
   smb passwd file = /etc/samba/smbpasswd
   username map = /etc/samba/smbusers
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
#  interfaces = 192.168.1.254/24 192.168.2.254/24
   os level = 33
#   default case = lower
#   case sensitive = no
   valid users = update,zbhdpx,@busniss,@tech
   admin users = update,
   write list = update,

#============================ Share Definitions ==============================

   path = /home/data
   writeable = yes
   public = no


   path = /home/save
   writeable = yes
   admin users = update,zbhdpx,@busniss,@tech
   public = no


   path = /home/mp3
   public = no
   writeable = yes      


   path = /home/disk
   public = no
   writeable = yes
   valid users = update


   path = /home/busniss
   public = no
   admin users = @busniss
   writeable = yes
   valid users = @busniss


   path = /home/tech
   public = no
   admin users = @tech
   writeable = yes
   valid users = @tech



我的smbuser文件內容:
# cat /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest




我的smbpasswd文件內容:
  # cat /etc/samba/smbpasswd
zbhdpx:502:D2F1CAA3AB15874DAAD3B435B51404EE:5D5EDEA7217AAA683D40B9B8D2B87E02::LCT-48E9D1D0:
bus01:2001:AFB15BD8963BBE79AAD3B435B51404EE:A70A24B656C40725C9CB63B6802BF13F::LCT-48EABB1E:
bus02:2002:AFB15BD8963BBE79AAD3B435B51404EE:A70A24B656C40725C9CB63B6802BF13F::LCT-48EABB2C:
tech01:2003:A4A1DF1691FB9A38AAD3B435B51404EE:06DA4042F45ED8E9A8D0574B0437C14B::LCT-48EABB36:
tech02:2004:A4A1DF1691FB9A38AAD3B435B51404EE:06DA4042F45ED8E9A8D0574B0437C14B::LCT-48EABB3C:
update:500:AB30CE88F7B510A0AAD3B435B51404EE:B3BCF07E85B9338F9C2F554CEA16B1B7::LCT-48EAC23D:



以zbhdpx用戶登陸系統,打開\\server,如下圖:



Save這個公有目錄是可寫的:但是不可以訪問:business,tech,disk三個目錄,mp3和data這兩個目錄是可以讀取的,但不可以寫入。

如果要進入disk目錄,我們在smb.conf文件中已經定義了此目錄的可用的用戶只有update,所以進入disk目錄只能用update用戶。同樣此目錄的管理用戶在全局中已經定義了:admin user=update,可以進行管理,寫入,同樣全局中定義的admin user對共享定義的文件夾data,disk,mp3,save都有做用,也就是說,如果以update用戶登陸,那麼對這四個目錄是可寫的。
同樣,business,tech目錄的可用用戶在共享定義中已經註明了:只有business和tech這兩個組用戶。所以不可以訪問。

我們還以zbhdpx的身份進入,可以打開save目錄,寫入文件:



同樣打開data,mp3,目錄可以看到文件,但是不可以寫入:



我們以update用戶連接disk目錄:



然後就可以看到此目錄內容,並寫入文件:


同樣,對於其它三個目錄:mp3,save.data,也都update用戶可以進行寫入。


這樣,我的要求update用戶已經實現對disk,data,mp3,save管理寫入,zbhdpx普通用戶實現了對save目錄的寫入,對data,mp3目錄可讀取,disk目錄不可見。其實寫到這個位置,大概的意思已經可以理解了。
我們還有兩個用戶組:business和tech.在這裡這兩個用戶是為了驗證一下smb.conf文件中組的寫法,實現基於組的管理,更加的方便。
我們再來測試,進入tech文件夾,現在我們已經以update的身份進行了映射,所以會有下邊的提示:



右鍵計算機管理,斷開網路驅動器如下圖:



然後再次以tehc01/tech02用戶連接,就可以了:


同理,斷開網路驅動器,用business組用戶bus01/bus02進入business文件夾,也是可寫。
如果用update用戶測試一下進入tech目錄:


就會有上邊的提示,因為我在smb.conf文件中已經定義了,business和tech用戶對各自的文件夾有管理許可權,所以,如果我們想要update用戶讀取這兩個目錄,並且可以寫入tech目錄要怎麼做?
那麼smb.conf中關於business和tech就改為下邊的:

   path = /home/business
   public = no
   admin users = @business
   writeable = yes
   valid users = @business,update


   path = /home/tech
   public = no
   admin users = @tech,update
   writeable = yes
   valid users = @tech,update

寫了這麼多,只是想要理解smb.conf文件中組管理的實現,共享文件夾對於不同用戶和組的設置,並且許可權的設定。



參考了以下文章:

http://www.linuxsir.org/main/node/158
http://www.linuxsir.org/main/node/278

[ 本帖最後由 zbhdpx 於 2008-10-7 17:46 編輯 ]
《解決方案》

感謝樓主的原創和分享精神,這個還是很有用的,收藏了~

[火星人 ] samba實現複雜的用戶許可權已經有333次圍觀

http://coctec.com/docs/service/show-post-27183.html