某学院设立三个院系 数计A 经管B 电信C ,学生:std1、std2、std3属于数计院;std4、std5、std6属于经管院;std7、std8、std9属于电信院,要求同院系之间的学生之间可以互相访问及修改各自文件但不能删除文件,不同院系之间只能访问,不能修改文件,设定teacher组,组内有tch1、tch2、tch3三位老师,可以对所有院系的学生文件进行访问
1. 首先使用groupadd 创建四个组 A B C teacher
2. 创建学生用户及老师用户并指定初始组
useradd -g
3. 创建三个目录分别属组为A B C
4. 更改默认权限
- 更改group权限为rwx ,others权限为只读r
chmod 774 group
- 添加特殊权限
chmod o+t ##作用:创建的文件只有自己和超级用户可以删除
chmod g+s ##作用:在目录下所创建的文件的所属组继承目录的所属组
setfacl -m d:g:A:rwx groupA ##作用:使组A对groupA里的所有新建的文件都默认有rwx权限
进行至此才发现没有给上级目录赋予others位上的x权限导致其他组的用户没有权限访问除其他组外的目录及文件,所以返回上级目录并加上权限
chmod o+x group
此时切换用户std1进入groupA创建文件file1并使用ll查看文件属性
随后切换std4进入groupA目录cat file1可以执行,使用rm -rf 会提示没有权限
最后切换同组的std2用户进入groupA目录,执行rm命令,提示无法删除,执行vi命令写入123,退出可以保存
至此,已完全实现题目要求内容