在生活中,一件事情是否允许被一个人做,就是叫做权限,权限认证的是身份而且权限还和事物的“属性”有关。
Linux下有两种用户:超级用户(root)、普通用户:
超级用户:可以再linux系统下做任何事情,不受限制;
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令:su [用户名]
功能:切换用户
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令
在Linux中,权限是指对文件或目录的访问和操作权限。Linux中的权限分为三个部分:拥有者权限、所属组权限和其他用户权限。每个文件或目录都有一个拥有者和一个所属组,拥有者权限是指文件或目录的拥有者具有的权限,所属组权限是指文件或目录所属群组的成员具有的权限,其他用户权限是指非拥有者和非所属组成员用户具有的权限。
(1)文件和文件目录的所有者:u—User
(2)文件和文件目录的所有者所在的组的用户:g—Group
(3)其它用户:o—Others
普通文件(-):就是普通的文件,可以是文本文件、二进制文件等,可以读、写和执行。
目录文件(d):用来存放其他文件和目录,本身是一个特殊的文件,可以读和执行,但是不能写入。目录文件可以包含多个文件和目录,并且可以嵌套多层。
符号链接文件(l):是一种指针类型的文件,它指向另一个文件或目录。符号链接文件自身的访问权限没有实际意义,因为权限通过链接指向的文件来控制。
字符设备文件(c):表示字符设备,如键盘、鼠标、串口等输入输出设备,有一个字符特征设备文件对应,可以读和写。
块设备文件(b):表示块设备,如硬盘、U盘等设备,有一个块特征设备文件对应,可以读和写。
命名管道文件(p):是一种进程间通信的机制,用于在两个进程之间传输有限量的数据。命名管道本质上是一种特殊的文件,可以读和写。
套接口文件(s):也是一种进程间通信的机制,用于两个进程之间传输流数据。套接字看起来像文件,但其实不是一个真正的文件,它是一种特殊的文件,可以读和写。套接字通常用于网络编程中。
(2)基本权限
1.读:Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
2.写:Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
3.执行:execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
4.“-”表示不具有该项权限
该文件就表示为普通文件,所有者权限为读写,所属组权限为读写,其他用户权限为仅可读;连接数为1,所属用户和所属组均为wh,文件大小为0,文件最新修改时间为6月23日22:32,文件名为test.txt。
在Linux系统中,每个文件和目录都有三组权限值,分别是所有者(owner)、所属组(group)、其他用户(others)的权限。针对每组用户的权限都有读、写和执行三种不同的权限。可以通过以下表示方法来表示不同权限的值:
chmod
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
(1)用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
(2)三位8进制数字
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"?y
[litao@localhost ~]$ exit
logout
但是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.所以为了解决这个不科学的问题, Linux引入了粘滞位的概
在 Linux 系统中,粘滞位(sticky bit)是一种特殊的文件权限位,用于控制某个目录中的文件只有文件拥有者或者管理员才能删除,其他用户即使有删除权限也无法删除。
粘着位的标志通常用 S 表示。如果在一个目录中的某个文件或目录设定了粘着位,则该文件或目录只能由文件或目录的所有者或管理员删除(或者移动)。其他用户即使对该文件或目录有写权限,也无法删除该文件或目录。此外,在一些 Linux 发行版中,多个用户可以同时在同一个目录下创建临时文件,而粘着位可以防止该目录中的文件被误删或者被其他用户的临时文件覆盖。
在 Linux 系统中,设置目录的粘着位可以通过 chmod 命令来实现
chmod +t directoryName
上述命令中,+t 表示设置粘着位,directoryName 表示要设定粘着位的目录名称。还可以通过 ls 命令查看 出现“t”的文件或目录的权限输出信息
[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
1、超级管理员删除
2、该目录的所有者删除
3、该文件的所有者删除
这些就是关于Linux中权限的简单介绍了
如有错误❌望指正,最后祝大家学习进步✊天天开心✨