Linux文件权限
文件权限学习
-rw-r--r--
d rwx r-xr-x
字段1:文件类型
-普通文件 d 目录 l 符号链接 c 字符设备 b block 块设备
字段2:所属者权限
字段3:所属组权限
字段4:其他用户权限
r:读 列出目录内容
w:写 添加删除目录中的文件
x: 执行 进入该目录
文件 read读取 写入权限 执行权限
root 特点 root组
普通用户 用户组
文件权限命令:
chmod a=--- 目录
chmod g=rwx 目录
chmod o=rx 目录
修改文件属性
chmod 对象 运算符号 权限 文件或者目录
对象:u(user所属者) g(goup所属组) o(other其他) a(all所有)
运算符号: +赋权 -撤权 =指定权限
基本练习:
1、root用户在/tmp目录中建立一个rootdir目录,设定组成员对该目录文件有添加删除的权限rwx,其他用户对该目录没有任何权限。设定tom用户的附加组为root组并在该目录中建立文件tom.txt
命令:
mkdir /tmp/rootdir
chmod g+w,o=---/tmp/rootdir
2、现在有一个用户jerry不是root组成员,调整rootdir目录权限使用jerry用户可以进入目录并列出目录内容。
命令:
chmod o=rx /tmp/rootdir
3、root用户在rootdir中建立一个root.txt文件,在上面两题基础上,要求该文件只有root用户和jerry用户可以查看,tom无法查看该文件。
命令:
chmod g-r /tmp/rootdir/root.txt
普通用户 rm -fr /* 会删除家目录的内容
切换成用户Allen 删除自己家中的内容 rm -fr .* 删除隐藏文件
使用root用户进行恢复
rm -rf /home/allen 使用root 用户先删除原来的家目录
cp -r /etc/skel /home/allen 拷贝用户家目录的模板文件到home中
chown -R allen:allen /home/allen 修改家目录的所属者和所属组
chown 修改文件所属者和所属组
-R 递归修改
文件的acl 设定某个用户有不同权限
man setfacl 为文件设定访问控制列表
-m 修改 u:用户名:权限 文件或者目录
八进制赋权法
r=4 w=2 x=1
rwxr-xr-x
755
rw-r--r--
644
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
三个特殊权限
t 粘滞位 (只对目录有效)
在目录中建立的文件只有文件的所属者可以删除。
chmod 777 /tmp/test
chmod o+t /tmp/test
方法2
chmod 1777 /tmp/test
sgid (只对目录有效)
在目录中建立的文件或者目录属组会继承父目录的属组
chmod 777 /tmp/test
chmod g+s /tmp/test
方法2
chmod 2777 /tmp/test
suid (只对可执行文件有效)
当一个可执行文件具有suid权限,无论谁运行该文件,谁就具有该文件所属者的权限。
which vim
chmod u+s /usr/bin/vim
chmod 4755 /usr/bin/vim
which find
chmod u+s /bin/find
普通用户
find /opt -name rh -exec "/bin/dash" \;
# 获得root权限
find / -perm 4755 针对权限进行查询系统中所有具有suid权限的命令
find / -perm +4000 忽视后面权限只要带suid的都查