要实现的效果:

共享文件夹: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 /smbcd /smbmkdir user1 user2 user3 group1 group2

添加用户组

groupadd group1  group2

添加用户

useradd -s /sbin/nologin -G group1 user1useradd -s /sbin/nologin -G group1,group2 user2 useradd -s /sbin/nologin -G group2 user3

变更文件夹的用户和用户组

chown -R user1:user1 user1chown -R user2:user2 user2 chown -R user3:user3 user3chown -R :group1 group1chown -R :group2 group2

变更文件夹访问权限

chmod 770 -R group1 group2chmod 700 -R user1 user2 user3

在samba中添加用户

pdbedit -a user1pdbedit -a user2pdbedit -a user3

打开samba的配置文件/etc/samba/smb.conf

[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 就会弹出如下窗口要求输入网络密码

原创:samba实现不同权限进入不同文件夹 - Steven - Steven的博客

 

最终效果:

用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/user2chmod -R 700 /smb/group1/user2

大多数情况下,这些在一个共享文件夹里的私有文件夹都是由管理员来设置的,用户是无法设置的。

这样设置后,非用户user1访问这个文件时,系统就会有如下提示:

原创:samba实现不同权限进入不同文件夹 - Steven - Steven的博客

 

更多Linux方面的资料请访问:http://www.aminglinux.com/bbs/?fromuid=4297