要实现的效果:

共享文件夹: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

[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/user2
chmod -R 700 /smb/group1/user2


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

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

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

 

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