一.权限组
Linux系统中的每个文件和目录都有三个权限组
user
拥有这个文件或目录的人的权限
group
是分配给文件或目录的组的组权限
other
所有用户都拥有的权限
二.权限
权限分为read
write
execute
因此使用ls -l
时会看到类似
drwxr-xr-x 14 ubuntu ubuntu 4096 May 9 23:23 curl-7
他表示的含义是
d
目录,如果这里是一个破折号,那么就表示的是文件
rwx
表示user
的权限,而这个owner就是后面的ubuntu
xr
表示group
权限,这个group就是后面第二个ubuntu
x
表示owner
权限,只有执行权
三.更改权限
1.chown(更改权限组)
chown 想改变的所有者 filename
例如
想要把这个ubuntu所有者改变成root所有
那么只需要chown root curl-7.74.0
但是现在并没有改变组
想改变组只需要chown root:root curl-7.74.0
2.chmod
r=4
w=2
x=1
那么刚才的例子drwxr-xr-x
就是r+w+x=7,r+x=5。也就是755
我们可以通过chmod 数字 文件名
来设置文件权限
还有另外一种写法
chmod whowhatwhich 文件或目录
who
谁user、group、other、all
what
干什么(+,-,=)(增加,减少,设置精确的权限)
which
r、w、x
比方说chmod ug+rw test.txt
就是增加了用户和组的读写权限
四.特殊权限
特殊权限是除用户 、 组和其他权限之外的第四个访问级别。特殊权限允许在标准权限集之外拥有额外的权限(顾名思义)。之前讨论过的每个访问级别都有一个特殊权限选项
1.user+s(特殊)
通常记为SUID
,这是用户访问级别的特殊权限
作用主要是:让普通用户能完成一些需要特权的操作(如修改密码),同时又不需要直接给 root 权限,保证系统安全。
我们来看一下passwd文件
-rwsr-xr-x 1 root root 59976 Nov 24 2022 /usr/bin/passwd
rws
:rw
表示所有者(root)可读写。s
表示 其他用户在拥有执行权限的前提下,运行程序时将以 root 的身份执行。
2.group+s
在文件上使用时,允许以拥有该文件的组
身份执行此文件
如果在目录中设置,则在该目录中创建的任何文件的组所有权都将设置为目录所有者的组所有权
3.other+t
最后一项特殊权限被称为粘滞位
。此权限不会影响单个文件。但是,在目录级别,它限制文件的删除。只有文件的所有者 ( root )才能删除该目录中的文件。一个常见的例子是 /tmp
目录
drwxrwxrwt 12 root root 4096 Jul 2 11:57 /tmp
五.设置特殊权限
1.使用符号方法
chmod g+s test/
设置SGID
2.使用数值方法
我们需要在chmod命令中传递第四位数字
SUID =4
SGID = 2
Sticky=1
chmod X### test/
x是特殊权限数字