用户数据共享
每个账号新建时,home目录的默认权限为700,即只有本账号才有对本账号home下的数据具有读写权限;
不同用户或用户组之间有课题组合作需要共享数据时,严禁直接将home目录
的权限设置为777
,此权限设置意味着任何其他用户都可以删除该目录下的任何文件;同时出于节约存储空间的考虑,也禁止将数据拷贝一份到自己的目录下。可以使用以下方式安全可控地实现数据共享,同时用户可自行设置,不需要管理员参与。
组内数据共享¶
本课题组账号之间需要共享数据时,可以开放组权限;
开放本账号home目录的读权限给本组用户。注意除非有特殊情况,不建议将写权限开放给其它用户,容易引发数据安全问题以及ssh秘钥访问配置不成功。
$ chmod 750 ~
组间数据共享¶
由于经常有跨课题组的合作,相互之间有数据共享的需求,即跨用户组之间有数据读写的需求。此时部分同学会开放整个home目录的权限为777,鉴于目前集群用户超过500人,此方式共享数据极度不安全;或者直接使用scp将对方账号的数据拷过来,造成数据冗余,产生不必要的存储费用开支。
鉴于此,可以使用Linux的ACL权限来满足此需求。
向用户组开放目录权限¶
用户user1(用户组为GROUP1)与GROUP2有课题组合作,需要将user1账号下的数据共享给GROUP2整个组所有用户,使GROUP2所有用户均对user1账号home目录下的数据都有读的权限,操作如下
#添加权限
[user1@login01 ~]$ setfacl -m g:GROUP2:rx /public/home/user1
#查看权限
[user1@login01 ~]$ getfacl/public/home/user1
getfacl: Removing leading '/' from absolute path names
# file: public/home/user1
# owner: user1
# group: GROUP1
user::rwx
group::---
group:GROUP2:r-x
mask::r-x
other::---
#课题合作结束后,基于安全考虑,建议删除权限
[user1@login01 ~]$ setfacl -x g:GROUP2 /public/home/user1
#查看权限
[user1@login01 ~]$ getfacl /public/home/user1
getfacl: Removing leading '/' from absolute path names
# file: public/home/user1
# owner: user1
# group: GROUP1
user::rwx
group::---
mask::---
other::---
向用户开放目录权限¶
用户user1(用户组为GROUP1)与GROUP2的user2有课题组合作,需要将user1账号下的数据共享给user2,使user2对user1账号home目录下的数据都有读的权限,操作如下
#添加权限
[user1@login01 ~]$ setfacl -m u:user2:rx /public/home/user1
#查看权限
[user1@login01 ~]$ getfacl /public/home/user1
getfacl: Removing leading '/' from absolute path names
# file: public/home/user1
# owner: user1
# group: GROUP1
user::rwx
user:user2:r-x
group::---
mask::r-x
other::---
#课题合作结束后,基于安全考虑,建议删除权限
[user1@login01 ~]$ setfacl -x u:user2 /public/home/user1
#查看权限
[user1@login01 ~]$ getfacl /public/home/user1
getfacl: Removing leading '/' from absolute path names
# file: public/home/user1
# owner: user1
# group: GROUP1
user::rwx
group::---
mask::---
other::---
注意事项¶
开放目录权限时,该目录路径上的所有目录的权限也同样需要开放,否则其他用户仍然无法访问。如向用户user2开放 /public/home/user1/data
目录的权限,setfacl -m u:user2:rx /public/home/user1/data
操作后,因为目录 /public/home/user1/
的相关权限没有开放给user2,所以user2仍然无法访问 /public/home/user1/data
目录。
因此正确做法为先操作 setfacl -m u:user2:rx /public/home/user1
,然后测试user2能否访问/public/home/user1/data
目录,如果权限仍然不够,再执行setfacl -m u:user2:rx /public/home/user1/data
。
基于数据安全考虑,建议不再需要共享数据时,及时删除共享权限。
本文阅读量 次本站总访问量 次