Linux权限是一种用于控制文件和目录访问的机制,它决定了用户对文件和目录的读取、写入和执行权限。Linux权限系统基于文件所有者、所属组和其他用户的身份,分为读取(r)、写入(w)和执行(x)权限。通过设置文件的权限,可以限制用户对文件的访问和操作,从而保护系统的安全性和稳定性。
包括人员权限和文件权限。
在Linux系统中,用户可以分为以下几类:
1.超级用户(root):拥有系统上所有权限的特殊用户,可以对系统进行完全控制。
2.系统用户:用于运行系统服务或进程的特定用户,通常不允许登录系统。
3.普通用户:一般系统用户,可以登录系统并执行一定范围的操作,但权限受到一定限制。
4.管理员用户:具有某些特定权限,例如可以执行系统管理任务或安装软件的用户。
其中平时我们最常见的用户为超级用户root和普通用户。
超级用户于普通用户可以用su指令进行转换。
在Linux中有三类角色,分别为拥有者(owner),所属组(group),其他人(other)。
1.拥有者(owner):指文件或目录的创建者,拥有者对文件或目录有特定的权限控制,包括读取(r)、写入(w)和执行(x)权限。
2.所属组(group):指文件或目录所属的用户组,用户组是一组用户的集合,拥有相同的权限。文件或目录的所属组也有特定的权限控制,包括读取(r)、写入(w)和执行(x)权限。
3.其他(others):指除拥有者和所属组之外的其他用户,其他用户对文件或目录的访问权限也可以通过设置来控制,包括读取(r)、写入(w)和执行(x)权限。
在Linux系统中,文件首先识别拥有者(owner)的身份。根据文件的拥有者身份,系统会根据其拥有的权限设置来决定文件的访问权限。如果用户是文件的拥有者,系统将首先检查该用户的权限设置,然后再考虑所属组和其他用户的权限设置。因此,文件的拥有者在访问文件时拥有最高的权限。
值得注意的是一旦识别出一类身份,就不会再识别其他的身份了
一个文件第一使用者为拥有者,然后是所属组
drwxr-xr-x 2 root root 4096 Dec 26 22:32 new2.dir
这个文件的拥有者为root,所属组为root
通过chown
和chgrp
指令修改
这样该目录的拥有者和所属组都被修改了。
在Linux系统中,文件的类别主要分为以下几种:
1.普通文件(Regular Files):这是最常见的文件类型,包括文本文件、二进制可执行文件等。
2.目录文件(Directory Files):用于存储其他文件和目录的文件类型。目录文件中包含了指向其他文件和目录的链接。
3.设备文件(Device Files):Linux将设备抽象为文件,设备文件分为块设备文件和字符设备文件,用于访问硬件设备。
4.符号链接文件(Symbolic Link Files):也称为软链接,它是指向另一个文件的链接。
5.套接字文件(Socket Files):用于进程间通信的特殊文件类型。
6.管道文件(Named Pipes):也称为FIFO,用于进程间通信的一种特殊文件类型。
初学者通常接触到的就是1,2类文件。
文件的权限通常有三种:
drwxr-xr-x 2 root root 4096 Dec 26 22:32 new2.dir
-rw-r--r-- 1 root root 69 Dec 26 22:20 test.c
这是一个目录文件和普通文件
目录文件:d代表目录,rwx r-x r-x 三三一组分别对应拥有者(owner),所属组(group),其他人(other)
除了第一个字符代表文件类型,其余字符皆反应文件权限,其中owner对应权限最全。
-代表未拥有权限
这里引入掩码概念
Linux掩码是一种权限掩码,用于控制文件和目录的访问权限。它由三组三位数字组成,分别表示文件所有者、文件所属组和其他用户的权限。
掩码是一个八进制序列
[root@iZf8zbc41kduw4qa52iammZ ~]# umask
0022
0是表示八进制,后面三位分别对应拥有者(owner),所属组(group),其他人(other)
反过来对应权限九个字符的二进制序列
例如:
rwx对应二进制111,对应八进制7
r-x对应二进制101,对应八进制5
Linux中默认目录文件权限为0777,普通文件0666
再将掩码取反后与默认权限按位与操作便得到了真正权限。
drwxr-xr-x 2 root root 4096 Dec 26 22:32 new2.dir
-rw-r--r-- 1 root root 69 Dec 26 22:20 test.c
如何更改文件权限呢?我们需要用到chmod
指令
# chmod u-x test.c
u +/- 所对应权限
给拥有者取消了执行权限,注意到test.c的高亮没有了
# chmod g+wx test.c
# chmod o+wx test.c
# chmod a+r test.c
# chmod 000 test.c
文件的执行关系指的是用户对文件的执行操作与文件本身的关系。当用户执行一个文件时,操作系统会根据文件的权限和用户的身份来决定是否允许执行。如果用户拥有执行权限,并且文件是可执行文件,那么用户就可以执行该文件。否则,用户将无法执行该文件。
总之,Linux 文件的执行权限和执行关系是指用户对文件是否具有执行操作的权限,以及用户是否能够执行该文件的关系。这些权限和关系对于系统的安全性和文件的可执行性非常重要。
能执行=具有x执行权限+执行者的关系
所以目录默认给定x权限,可以让用户直接访问
当有权限时:
当无权限时:
去掉x权限时,作为普通用户无法查看访问
如果普通用户需要在系统中创建目录,他们通常应该在自己的家目录或者其他有相应权限的目录下进行操作。
当然超管无所畏惧
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ touch qiangsir.111 qiangsir.222[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ ll
total 0
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.111
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.222
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# touch root.111 root.222
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# ll
total 0
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.111
-rw-rw-r-- 1 qiangsir qiangsir 0 Dec 29 10:24 qiangsir.222
-rw-r--r-- 1 root root 0 Dec 29 10:25 root.111
-rw-r--r-- 1 root root 0 Dec 29 10:25 root.222
[root@iZf8zbc41kduw4qa52iammZ tem.dir]#
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# echo "hello Linux" > root.111
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# cat root.111
hello Linux
由于other具有r权限且在qiangsir创建的目录下,所以读没有问题
没有w权限,显然不能动用root的文件
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ echo "hehe" >root.111
bash: root.111: Permission denied
给o+w试试
[root@iZf8zbc41kduw4qa52iammZ tem.dir]# chmod o+w root.111
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ echo "hehe" > root.111
[qiangsir@iZf8zbc41kduw4qa52iammZ tem.dir]$ cat root.111
hehe
超管可以删qiangsir的文件
那么qiangsir可以删超管的文件吗?答案是肯定的。
原因是这是qiangsir 的目录,所以有对文件的生杀大权。
今天的知识就分享到这里,往期精彩:
Linux的奇妙冒险———指令篇第一曲
Linux的奇妙冒险———指令篇第二曲