linux 多用户文件共享

1:setUID, 用户执行有s权限的文件时,会以属主身份去执行。eg: 普通用户执行passwd修改密码时,会通过passwd的属主,也就是root去执行。

设置SetUID

chmod 4xxx < file-name >

chmod u+s < file-name >

取消SetUID

chmod xxx < file-name >

chmod u-s < file-name >

s:setGID, 对于文件,执行该文件时,以组权限执行。对于目录,新文件会以该目录的默认属组作为默认属组。

设置SetGID

chmod 2xxx

chmod g+s

取消SetGID

chmod xxx

chmod g-s

t:StickBit, 粘滞位,t权限的目录有wx权限,进程结束后文件依然驻留在内存中,无法被其他用户删除。

设置SBIT

chmod 1xxx < dir-name >

chmod o+t < dir-name >

取消SBIT

chmod xxx < dir-name >

chmod o-t < dir-name >

共享目录

根据setGID的特性,可以实现大范围地创建并共享文档。

先做准备工作

创建一个分享组

sudo groupadd shared

添加当前用户到分享组

sudo usermod -G shared zxl
sudo usermod -G shared lcl

检查结果

id zxl

id lcl

共享目录

创建共享目录

mkdir shared_dir

ls -lF

修改目录组,设置SGID

sudo chgrp shared shared_dir/

sudo chmod g+s shared_dir

ls -lF

注意到组权限x变为了s,设置SGID成功

目录下新建一个文件,该文件所属组为目录组,文件执行权限为组权限。可能需要设置umask

umask 002

cd shared_dir/

touch testfile

ls -lF

切换用户进行尝试

su lcl

ls -lF

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值