samba+chmod+setfacl组合设置目录权限问题-阿里云开发者社区

开发者社区> 科技小能手> 正文

samba+chmod+setfacl组合设置目录权限问题

简介:
+关注继续查看
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


本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/545370

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle 11g sys,system 密码忘记设置解决办法
原文: Oracle 11g sys,system 密码忘记设置解决办法 1.启动sqlplus 2.请输入用户名:  sqlplus/as sysdba 3.输入口令: 直接回车 4.连接到:    Oracle Database 11g Enterprise Edition Release 11.
997 0
/文件和目录权限chmod /更改所有者和所属组chown/umask/隐藏权限lsattr/chattr
2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown2.16 umask2.17 隐藏权限lsattr/chattr     文件和目录权限chmod  文件权限: r     4       可读 w    2      可写 x     1    ...
1118 0
linux如何修改文件或目录的权限(chmod)
chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符。777,第一个7代表文件所属者的权限,第二个7代表文件所属者所在组的权限,第三个7代表其它用户的权限,7=4+2+1,在linux中权限是可以通过数字来描述的。
653 0
基于Unity的AOP的符合基于角色的访问控制(RBAC)模型的通用权限设计
AOP的特性使得它非常适合用来设计类似权限控制的功能,这是本文的基础,如果想要了解AOP的实现,可以参考《动态织入的AOP实现》。 在基于角色的访问控制(RBAC)中,有三要素:用户、角色、任务(或操作)(User、Role、Task),其稳定性逐渐增强,两个关系,UserRole、RoleTas...
567 0
6.set ff=unix;设置Linux中文件中每行后又尖括号的情况
 用vi命令打开要替换尖括号的文件 直接输入:   :set ff=unix 表示设置文件格式是unix格式
1257 0
14426
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载