19 Nov 2014
# 测试用户准备(sbit组,两用户sbit01/sbit02) groupadd sbit useradd sbit01 -G sbit useradd sbit02 -G sbit # 测试目录准备(增加sbit,增加sbit组写权限) mkdir /data/sbit_test chown :sbit /data/sbit_test chmod g+w,o+t /data/sbit_test ll -d /data/sbit_test drwxrwxr-t. 2 root sbit 4096 Aug 3 22:23 /data/sbit_test
# sbit可控制sbit01创建的文档只有root和sbit01删除和更名 # 分别用两个用户创建自己的文件 su - sbit01 -c "touch /data/sbit_test/sbit01.txt" su - sbit02 -c "touch /data/sbit_test/sbit02.txt" # sbit02无法删除sbit01的文件,但是可以删除自己的 su - sbit02 -c "rm -f /data/sbit_test/sbit01.txt" rm: cannot remove '/data/sbit_test/sbit01.txt': Operation not permitted su - sbit02 -c "rm -f /data/sbit_test/sbit02.txt" # root可以删除sbit01的文件 rm -f /data/sbit_test/sbit01.txt # 重新创建两个文件,尝试mv操作,和rm是一样的逻辑
# 在用户文件other拥有w权限时,sbit不可阻止用户互相修改对方文件的内容和touch文件时间 # 创建两个空文件 su - sbit01 -c "touch /data/sbit_test/sbit01.txt" su - sbit02 -c "touch /data/sbit_test/sbit02.txt" # 给sbit01.txt的other加上w权限,sbit02可以修改sbit01.txt内容和touch其文件时间 chmod o+w /data/sbit_test/sbit01.txt ll /data/sbit_test/sbit01.txt -rw-r--rw-. 1 sbit01 sbit01 7 Aug 3 22:51 /data/sbit_test/sbit01.txt su - sbit02 -c "echo sbit02 > /data/sbit_test/sbit01.txt" su - sbit02 -c "touch /data/sbit_test/sbit01.txt" # sbit02.txt的other没有写权限,sbit01不可修改sbit02.txt内容及touch其文件时间 ll /data/sbit_test/sbit02.txt -rw-rw-r--. 1 sbit02 sbit02 0 Aug 3 22:44 /data/sbit_test/sbit02.txt su - sbit01 -c "echo sbit01 > /data/sbit_test/sbit02.txt" -bash: /data/sbit_test/sbit02.txt: Permission denied su - sbit01 -c "touch /data/sbit_test/sbit02.txt" touch: cannot touch '/data/sbit_test/sbit02.txt': Permission denied
sbit是对目录做的限制
该目录中的文件只有文件名称和inode号是保存在目录的datablock中,
所以sbit只能控制用户之间互相不能修改名称和删除该文件的inode;
而文件的内容和时间信息是保存在文件自身的inodeblock和datablock中的, 所以是否可修改是由其本身的权限来控制的。