转自: http://hi.baidu.com/zfxwyh1985/blog/item/e5473aecc87b082c63d09f69.html/cmtid/20b2bb347bfb8b365ab5f563
samba+chmod+setfacl组合设置目录权限问题!
用了一个下午时间,测试+总结,终于完成了!
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 |