前言
本文参考链接:Linux文件特殊权限
实践:文件特殊权限
- 在
/opt
目录下创建Project
目录,作为项目目录
sudo mkdir /opt/Project
- 创建一个用户组
groupadd TestGroup
sudo groupadd TestGroup
- 创建两个测试用户,
TestUser1
和TestUser2
,请使用下面的命令
sudo useradd -G TestGroup TestUser1 -s /bin/bash -m
sudo useradd -G TestGroup TestUser2 -s /bin/bash -m
- 实现以下功能:
- 只能TestUser1,TestUser2, root三个用户,和其他
TestGroup
用户组的用户才能进入该目录,其他用户对这个文件夹没有任何权限 -
TestUser1
和TestUser2
创建的文件,所属组为TestGroup
- 在此目录下,所有用户只能删除自己创建的文件,
root
除外
sudo chgrp -R TestGroup /opt/Project #修改所属组,此时的权限是755
sudo chmod 770 /opt/Project # 修改权限为770,其他用户对这个文件夹没有权限
sudo chmod o+s /opt/Project/ #所有用户只能删除自己创建的文件
sudo chmod g+s /opt/Project/ #组内文件互通
sudo chmod o+t /opt/Project/ #其他用户无法删除
- 粘滞位,当⽬录被设置了粘滞位权限以后,即便⽤户对该⽬录有写⼊权限,也不能删除该⽬录中其他⽤户的⽂件数据,⽽是只有该⽂件的所有者和root⽤户才有权将其删除。设置了粘滞位之后,正好可以保持⼀种动态的平衡:
允许各⽤户在⽬录中任意写⼊、删除数据,但是禁⽌随意删除其他⽤户的数据
。
# 相关知识点
基础命令
ls -l -a - i -h
cd
pwd
mv
cp -i -r -f
rm -i -r -f
文件夹
mkdir
rmdir
查看文件内容
cat -n -b # -n 所有行 -b 空行不编号
tac
more #只能向下翻页,无法定位到查找内容,自动退出
less # man手册就是基于此实现的,可以上下翻页,可以定位到查找内容,不会自动退出
head -n
tail -n
nl -b (a t)
-n (ln rn rz)
-w #设定行编号的宽度
三个时间
- atime=access
- ctime= change
- mitime=modify
隐藏属性
lsattr
chattr
文件的特殊权限
#二进制可执行程序
#执行程序,临时获得程序所有者的权限
set_uid: u+s
#二进制可执行程序,文件夹
#进入到该文件夹下,有效组变为该文件夹的所属组
set_gid: g+s
#文件夹
#进入到该文件夹里的用户只能删除自己创建的文件
sticky_bit: o+t
字母大小写判断文件原来是否有可执行权限
文件的查找和定位
which #在PATH中,找二进制可执行文件
whereis #二进制可执行文件,man手册,库函数
locate #索引库
find #文件的名字、大小、所属组、类型、时间、文件权限