用了一个下午时间,测试+总结,终于完成了!
1: 建目录 /rich/teacher
/rich/teacher/t1 > u1--u3
/rich/teacher/t2 > u4--u6
/rich/teacher/t3 > u7--u9
2:建用户 useradd u1--u9, t1--t3, -g g1
3: vim /etc/samba/smb.conf
[teacher]
comment = one class
path = /rich/teacher
writable = yes
valid users = @g1,u1,u2,u3,u4,u5,u6,u7,u8,u9,t1,t2,t3
# 或者把用户建到组g1
4: vim /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/rich /rich ext3 defaults,acl 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda5 swap swap defaults 0 0
/dev/hdc /mnt/cdrom iso9660 defaults 0 0
5:开始设置权限
从内向外依次设置
1: chown -R u1 u1
chown -R u2 u2
....u9
2: chmod 700 u1 u1
chmod 700 u2 u2
....u9 # 将所有学生文件夹权限归属到对应的每个学生下“u1 》 u1文件夹”
----------------------------------------------------------
3: setfacl -m u:t1:rwx u1
setfacl -m u:t1:rwx u2
setfacl -m u:t1:rwx u3 # t1老师对其下面的3个学生文件夹有完全控制权限
setfacl -m u:t2:rwx u4
setfacl -m u:t2:rwx u5
setfacl -m u:t2:rwx u6 # t2老师对其下面的3个学生文件夹有完全控制权限
setfacl -m u:t3:rwx u7
setfacl -m u:t3:rwx u8
setfacl -m u:t3:rwx u9 # t3老师对其下面的3个学生文件夹有完全控制权限
--------------------------------------------------------------------------------------------------
4: setfacl -m u:u1:r-x t1
setfacl -m u:u2:r-x t1
setfacl -m u:u3:r-x t1 # u1,u2,u3对t1目录必需有读取的权限,不然无法进入到t1下面所对应的自己的目录
setfacl -m u:u4:r-x t2
setfacl -m u:u5:r-x t2
setfacl -m u:u6:r-x t2 # u4,u5,u6对t2目录必需有读取的权限,不然无法进入到t1下面所对应的自己的目录
setfacl -m u:u7:r-x t3
setfacl -m u:u8:r-x t3
setfacl -m u:u9:r-x t3 # u7,u8,u9对t3目录必需有读取的权限,不然无法进入到t1下面所对应的自己的目录
--------------------------------------------------------------------------------------------------
5:学生与学生“u1--u3”“u4--u6”“u7--u8”之间的如果可以互访则
setfacl -m u:u1:r-x u2 #设置u1可以访问u2的目录
-----------------------------------------------------------------------------------------------------
6:如果 u1访问u4 或 u5访问u8 则需要更改第4部如下:
u1 > u4 : setfacl -m u:u1:r-x t2
setfacl -m u:u1:r-x u4
u5 > u8 : setfacl -m u:u5:r-x t2
setfacl -m u:u5:r-x u8
及时修改,今天早上发现一个问题,“u1用户在自己的目录u1目录下新建的文档file1,t1老师可以将file1删除,但不能修改文件file1”
因此做了如下修改,今天生产环境中做了n多的测试后,最终修改为:
1: 建目录 /rich/teacher
/rich/teacher/t1 > u1--u3
/rich/teacher/t2 > u4--u6
/rich/teacher/t3 > u7--u9
2:建用户 useradd u1--u9, t1--t3, -g g1
3: vim /etc/samba/smb.conf
[teacher]
comment = one class
path = /rich/teacher
writable = yes
valid users = @g1,u1,u2,u3,u4,u5,u6,u7,u8,u9,t1,t2,t3
# 或者把用户建到组g1
4: vim /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/rich /rich ext3 defaults,acl 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda5 swap swap defaults 0 0
/dev/hdc /mnt/cdrom iso9660 defaults 0 0
5:开始设置权限
从内向外依次设置
1: chown -R u1 u1
chown -R u2 u2
....u9
2: chmod –R 700 u1 u1
chmod –R 700 u2 u2
....u9 # 将所有学生文件夹权限归属到对应的每个学生下“u1 》 u1文件夹”
----------------------------------------------------------
3: setfacl -m u:t1:rwx u1
setfacl –d --set u:t1:rwx,u:u1:rwx u1
setfacl -m u:t1:rwx u2
setfacl –d --set u:t1:rwx,u:u2:rwx u2
setfacl -m u:t1:rwx u3
setfacl –d --set u:t1:rwx,u:u2:rwx u2
# t1老师对其下面的3个学生文件夹有完全控制权限
setfacl -m u:t2:rwx u4
setfacl –d --set u:t2:rwx,u:u4:rwx u4
setfacl -m u:t2:rwx u5
setfacl –d --set u:t2:rwx,u:u5:rwx u5
setfacl -m u:t2:rwx u6
setfacl –d --set u:t2:rwx,u:u6:rwx u6
# t2老师对其下面的3个学生文件夹有完全控制权限
setfacl -m u:t3:rwx u3
setfacl –d --set u:t3:rwx,u:u7:rwx u7
setfacl -m u:t3:rwx u7
setfacl –d --set u:t3:rwx,u:u7:rwx u7
setfacl -m u:t3:rwx u3
setfacl –d --set u:t3:rwx,u:u7:rwx u7
# t3老师对其下面的3个学生文件夹有完全控制权限
----------------------------------------------------------
4: setfacl -m u:u1:r-x,u:u2:r-x,u:u3:r-x t1
# u1,u2,u3对t1目录必需有读取的权限,不然无法进入到t1下面所对应的自己的目录
setfacl -m u:u4:r-x,u:u5:r-x,u:u6:r-x t2
# u4,u5,u6对t2目录必需有读取的权限,不然无法进入到t2下面所对应的自己的目录
setfacl -m u:u7:r-x,u:u8:r-x,u:u9:r-x t3
# u7,u8,u9对t3目录必需有读取的权限,不然无法进入到t3下面所对应的自己的目录
----------------------------------------------------------
5:学生与学生“u1--u3”“u4--u6”“u7--u8”之间的如果可以互访则
setfacl -m u:u1:r-x u2 #设置u1可以访问u2的目录
----------------------------------------------------------
6:如果 u1访问u4 或 u5访问u8 则需要更改第4部如下:
u1 > u4 : setfacl -m u:u1:r-x t2
setfacl -m u:u1:r-x u4
u5 > u8 : setfacl -m u:u5:r-x t2
setfacl -m u:u5:r-x u8
本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/545370