在 Linux 系统中,多用户环境下共享文件的需求可能包括:
为了解决这些问题,可以结合使用目录权限和粘滞位。
Linux 文件系统的权限分为三类:
权限针对三种身份设置:
粘滞位是 Linux 文件系统的一种特殊权限,通常用于共享目录。它的作用是:
使用 mkdir
命令创建一个共享目录,例如:
sudo mkdir /shared
为共享目录分配读写执行权限,使所有用户可以访问和使用该目录:
sudo chmod 777 /shared
上述命令将权限设置为:
虽然所有用户现在都可以自由操作目录,但这种设置也带来了风险,因为任何人都可以删除他人的文件。
为了防止非所有者删除其他用户的文件,我们需要为目录添加粘滞位:
sudo chmod +t /shared
此时,如果使用 ls -ld /shared
查看目录的权限,可以看到如下结果:
drwxrwxrwt 2 root root 4096 Dec 22 12:00 /shared
其中最后的 t
表示粘滞位已生效。
创建两个测试用户:
sudo useradd user1
sudo useradd user2
并为它们设置密码:
sudo passwd user1
sudo passwd user2
切换到 user1
用户,并在共享目录中创建一个文件:
su - user1
cd /shared
echo "Hello from user1" > file1.txt
切换到 user2
用户,尝试删除 user1
创建的文件:
su - user2
cd /shared
rm file1.txt
此时会出现类似以下的错误信息:
rm: cannot remove 'file1.txt': Operation not permitted
这证明粘滞位生效,user2
无法删除 user1
的文件。
但是,user2
依然可以创建自己的文件并删除它:
echo "Hello from user2" > file2.txt
rm file2.txt
777
)。/tmp
目录,该目录对所有用户开放,但通过粘滞位防止用户删除他人文件。通过结合目录权限和粘滞位,Linux 系统能够更好地管理共享文件的访问和保护。粘滞位是一种简单而有效的机制,适用于多用户协作的场景。如果您正在管理一个共享环境,不妨尝试使用粘滞位来提高资源的安全性。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有