目录
权限的概念
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
切换用户
命令: su [用户名]
root变成普通用户不需要密码
Linux权限管理
1.文件访问者的分类(人)
文件和文件目录的所有者:u (User拥有者)
文件和文件目录的所有者所在的组的用户:g (Group所属组)
其它用户:o (Others其他人)0.
2.文件类型和访问权限(事物属性)
文件类型:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
基本权限:
r : 读
w :写
x : 可执行
拥有者(文件所有者):文件所属者
所属组:文件属于哪一个组
other: 不属于上面两种的任何一个
注:权限是对特定的文件实现组内管理
文件权限值的表示方法
字符表示法
表示 | 说明 | LINUX表示 | 说明 |
---|---|---|---|
r - | 只读 | -w- | 仅可写 |
--x | 仅可执行 | rw- | 可读可写 |
-wx | 可写和可执行 | r-x | 可读可执行 |
rwx | 可读可写可执行 | --- | 无权限 |
权限值表示法
权限符号(读写执行) | 八进制 | 二进制 |
---|---|---|
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
文件访问权限设置
命令: chmod
功能:设置文件的访问权限 格式: chmod [参数] [权限] [文件名]
只有文件的拥有者和root才可以改变文件的权限
chmod命令权限格式:
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
u:拥有者 g:拥有者同组用
o:其它用户
a:所有用户
一次性修改权限
方法一:
方法二:a:所有用户
方法三:权值(8进制)更改权限
更改所属文件的拥有者或所属组
chown : 修改文件的拥有者
格式:chown [参数] 用户名 文件名
chgrp : 修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
系统依次按顺序查看权限,若你是所有者且没rwx权限,而你在所属组内有相应权限,也是不能进行rwx的
sudo 单次更改权限
sudo:只是此次操作用的是root的权限
如果用户想执行sudo,需要提升权限。用户要在信任列表中,才可执行sudo。 添加用户到信任列表也需要root权限
umask : 查看或修改文件掩码
当我们新建一个目录:
此时该目录默认other缺少写权限,我们可以通过umask掩码改变默认权限
查看umask默认值:
主要注意到掩码后3位
002中2的位置为other对用二进制010,而同时具备rwx为111,将111和010进行按位与运算->101->r-x
更改umask:
umask [权限模式]
此时创建目录的默认权限:
目录的权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中. 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
如果我们要进入一个目录,那么需要的是什么权限?答案是x,r权限表示在目录中能否查看文件的属性,w权限表示你能不能在目录里创建文件。那么这里就可以知道为什么系统要规定一个目录必须是777开始的,因为所有的目录被创建出来,一般都是要能被进入的!
于是, 问题来了~ , 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。为了解决这个不科学的问题, Linux引入了粘滞位的概念。
粘滞位
粘滞位(Sticky Bit)是一种特殊的文件权限属性,通常应用于目录上。粘滞位可以防止普通用户删除其他用户在同一目录下创建的文件,即使这些普通用户对于该文件有写权限。
在具有粘滞位的目录中,只有文件的所有者、目录的所有者或者 root 用户才能删除该目录下的文件,其他普通用户不具备删除权限。这可以防止一些恶意行为,比如用户故意删除其他用户的文件或目录。
在 Linux 系统中,粘滞位通常通过在目录权限中使用 “+t” 表示。例如,设置目录的权限为 “drwxrwxrwt” 时,表示该目录启用了粘滞位。最常见的例子是 /tmp 目录,这个目录启用了粘滞位,以确保所有用户都能够向其中写入文件,但只有自己或管理员能够删除。
当一个目录被设置为"粘滞位"(用chmod +t +目录),则该目录下的文件只能由
-
超级管理员删除
-
该目录的所有者删除
-
该文件的所有者删除
注意:在当前文件(dir)增加或删除文件,跟本身文件权限无关,跟目录有关