要实现的效果:
共享文件夹: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 就会弹出如下窗口要求输入网络密码
最终效果:
用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访问这个文件时,系统就会有如下提示:
更多Linux方面的资料请访问:http://www.aminglinux.com/bbs/?fromuid=4297