原創:samba實現不同許可權進入不同資料夾
阿新 • • 發佈:2019-01-24
要實現的效果:
共享資料夾:user1, user2, user3, group1, group2
1、使用者user1屬於組group1; 使用者user2屬於組group1和組group2;使用者user3屬於組group3
2、使用者user1 user2 user3可以各自進入自己的資料夾
3、使用者user1 user2可以進入資料夾group1;使用者user2
user3可以進入資料夾group2
在根目錄下新建資料夾smb資料夾及其下屬子資料夾
mkdir /smb
cd /smb
mkdir user1 user2 user3 group1 group2
新增使用者組
groupadd group1 group2
新增使用者
useradd -s /sbin/nologin -G group1 user1
useradd -s /sbin/nologin -G group1,group2 user2
useradd -s /sbin/nologin -G group2 user3
變更資料夾的使用者和使用者組
chown -R user1:user1 user1
chown -R user2:user2 user2
chown -R user3:user3 user3
chown -R :group1 group1
chown -R :group2 group2
變更資料夾訪問許可權 chmod 770 -R group1 group2
chmod 700 -R user1 user2 user3
在samba中新增使用者
pdbedit -a user1
pdbedit -a user2
pdbedit -a user3
開啟samba的配置檔案/etc/samba/smb.conf
還需要加入以下內容:
[user1] comment = User1 path = /smb/user1 valid users = user1 read only = No [user2] comment = User2 path = /smb/user2 valid users = user2 read only = No [user3] comment = User3 path = /smb/user3 valid users = user3 read only = No [group1] comment = group1 path = /smb/group1 valid users = @group1 read only = No [group2] comment = group2 path = /smb/group2 valid users = @group2 read only = No 重新啟動samba服務: service smb restart 在windows資源管理器位址列中輸入 \\IP,本例中是\\10.0.0.72 就會彈出如下視窗要求輸入網路密碼 最終效果: 用user1登入後,可以訪問 user1和group1; 用user2登入後,可以訪問user2,group1和group2; 用user3登入後,可以訪問user3和group2。 如果登入沒有訪問許可權的資料夾後,還會彈出輸入網路密碼的視窗。 還有一種應用情形,在實際工作中經常遇到:公司裡每一個部門都有以自己部門名稱來命名的資料夾,但部門內的每個人都需要有自己的私人資料夾,在不增加共享資料夾數量的情況下,在部門資料夾內部實際只有自己可以訪問的資料夾。這樣做的好處就是使共享資料夾數量不致於太多而難於管理,同時也不方便查詢檔案。 拿本例來說: user1和user2都屬於group1這個組,他們都可以訪問共享資料夾group1,但是在資料夾group1中使用者user2有些資料夾(比如資料夾user2)不想讓本組的其他人訪問。 這種情況屬於共享的問題,而屬於資料夾許可權的問題。 因些只需要在linux命令列下修改資料夾group1中資料夾user2的使用者和使用者組以組許可權就可以。 chown -R user2:user2 /smb/group1/user2 chmod -R 700 /smb/group1/user2 大多數情況下,這些在一個共享資料夾裡的私有資料夾都是由管理員來設定的,使用者是無法設定的。 這樣設定後,非使用者user1訪問這個檔案時,系統就會有如下提示: 更多Linux方面的資料請訪問:http://www.aminglinux.com/bbs/?fromuid=4297
變更資料夾訪問許可權 chmod 770 -R group1 group2
[global] 部分內容如下:
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
還需要加入以下內容:
[user1] comment = User1 path = /smb/user1 valid users = user1 read only = No [user2] comment = User2 path = /smb/user2 valid users = user2 read only = No [user3] comment = User3 path = /smb/user3 valid users = user3 read only = No [group1] comment = group1 path = /smb/group1 valid users = @group1 read only = No [group2] comment = group2 path = /smb/group2 valid users = @group2 read only = No 重新啟動samba服務: service smb restart 在windows資源管理器位址列中輸入 \\IP,本例中是\\10.0.0.72 就會彈出如下視窗要求輸入網路密碼 最終效果: 用user1登入後,可以訪問 user1和group1; 用user2登入後,可以訪問user2,group1和group2; 用user3登入後,可以訪問user3和group2。 如果登入沒有訪問許可權的資料夾後,還會彈出輸入網路密碼的視窗。 還有一種應用情形,在實際工作中經常遇到:公司裡每一個部門都有以自己部門名稱來命名的資料夾,但部門內的每個人都需要有自己的私人資料夾,在不增加共享資料夾數量的情況下,在部門資料夾內部實際只有自己可以訪問的資料夾。這樣做的好處就是使共享資料夾數量不致於太多而難於管理,同時也不方便查詢檔案。 拿本例來說: user1和user2都屬於group1這個組,他們都可以訪問共享資料夾group1,但是在資料夾group1中使用者user2有些資料夾(比如資料夾user2)不想讓本組的其他人訪問。 這種情況屬於共享的問題,而屬於資料夾許可權的問題。 因些只需要在linux命令列下修改資料夾group1中資料夾user2的使用者和使用者組以組許可權就可以。 chown -R user2:user2 /smb/group1/user2 chmod -R 700 /smb/group1/user2 大多數情況下,這些在一個共享資料夾裡的私有資料夾都是由管理員來設定的,使用者是無法設定的。 這樣設定後,非使用者user1訪問這個檔案時,系統就會有如下提示: 更多Linux方面的資料請訪問:http://www.aminglinux.com/bbs/?fromuid=4297