linux共享多个文件夹,Linux多用户共享文件

linux文件权限分为 属主权限、属组权限、其他用户权限、特殊权限。

特殊权限

s: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的特性,可以实现大范围地创建并共享文档。

先做准备工作

# 创建一个分享组

parallels@abosen:~/temp$ sudo groupadd shared

# 添加当前用户到分享组

parallels@abosen:~/temp$ sudo usermod -a parallels -G shared

# 创建新用户,并添加到分享组,-M 不创建home目录

parallels@abosen:~/temp$ sudo useradd -M person2share -G shared

# 检查结果

parallels@abosen:~/temp$ id person2share

uid=1001(person2share) gid=1002(person2share) groups=1002(person2share),1001(shared)

parallels@abosen:~/temp$ cat /etc/group | grep shared

shared:x:1001:parallels,person2share

共享目录

# 创建共享目录

parallels@abosen:~/temp$ mkdir shared_dir

parallels@abosen:~/temp$ ls -lF

total 4

drwxrwxr-x 2 parallels parallels 4096 Oct 31 15:37 shared_dir/

# 修改目录组,设置SGID

parallels@abosen:~/temp$ sudo chgrp shared shared_dir/

parallels@abosen:~/temp$ sudo chmod g+s shared_dir

parallels@abosen:~/temp$ ls -lF

total 4

drwxrwsr-x 2 parallels shared 4096 Oct 31 15:37 shared_dir/

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

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

parallels@abosen:~/temp$ cd shared_dir/

parallels@abosen:~/temp/shared_dir$ touch testfile

parallels@abosen:~/temp/shared_dir$ ls -lF

total 0

-rw-rw-r-- 1 parallels shared 0 Oct 31 15:42 testfile

测试

# 关闭属主权限

parallels@abosen:~/temp/shared_dir$ sudo chmod u-rw testfile

[sudo] password for parallels:

parallels@abosen:~/temp/shared_dir$ ls -lF

total 0

----rw-r-- 1 parallels shared 0 Oct 31 15:42 testfile

parallels@abosen:~/temp/shared_dir$ cat testfile

cat: testfile: Permission denied

# 切换用户进行尝试

parallels@abosen:~/temp/shared_dir$ su person2share

Password:

$ ls -lF /home/parallels/temp/shared_dir/testfile

----rw-r-- 1 parallels shared 0 Oct 31 15:42 /home/parallels/temp/shared_dir/testfile

$ echo hello > /home/parallels/temp/shared_dir/testfile

$ cat /home/parallels/temp/shared_dir/testfile

hello

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值