问题产生原因:
用户在创建文件时候,其创建的文件的属主和属组都是用户本身,所以让组具有写权限并不意味着其他用户具有写权限
解决方案:
给共同访问的目录添加SGID权限
解决过程:
场景举例:比如一个公司的开发团队有三个用户:Hadoop、habase、hive 有一个文件目录tmp/project供他们开发,如何实现让这三个用户都对其具有写权限
第一步:
修改三个用户的附加组都为developteam
切换到不同用户下面查看用户是否有写权限
第二步:给属组添加写权限
用户添加到同一个附加组之后,组并没有写的权限,此时需要给文件添加写的权限
查看用户此时拥有写权限否?
查看用户创建的文件的属组,给附加组添加写权限之后,用户的属主属组还是创建文件的用户,其他用户还是不能够进行写操作。
第三步:给文件SGID
命令:chmod g+s /tmp/project/
给文件添加了SGID之后文件的属组变成了文件本身的属组,而不是文件的创建者
其他用户可以对文件进行操作:
为防止其他用户的删除操作,对文件添加stick权限
命令:chmod o+t /tmp/project/
给文件添加SGID 和stick之后其他用户可以对文件目录都有写的权限但是不能删除其他用户创建的文件。
时间: 2024-10-30 11:44:29