🔥个人主页: Forcible Bug Maker
🔥专栏:Linux学习
目录
- 🌈前言
- 🔥Linux权限的概念
- 🔥Linux权限管理
- 01.文件访问者的分类
- 02.文件类型和访问权限(文件属性)
- 03.文件权限值得表示方法
- 04.文件访问权限的相关设置方法
- 🔥目录的权限
- 🔥粘滞位
- 🌈结语
🌈前言
本篇博客主要内容:Linux权限的概念以及权限管理。
Linux系统的权限是Linux安全模型的核心组成部分,它决定了系统上的用户、用户组以及进程可以对文件、目录和其他系统资源执行哪些操作。理解Linux的权限对于确保系统的安全性、稳定性和数据保护至关重要。
🔥Linux权限的概念
Linux下有两种用户:超级用户(root)和 普通用户。
- 超级用户:可以在Linux系统下做任何事情,不受限制
- 普通用户:在Linux下做有限的事情
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令:su [用户名]
功能:切换用户
例如,要从root切换到用户user,使用su user。要从用户user切换到root用户则使用su root,此时系统会提示输入root用户的密码。
快捷键:Ctrl+D,退出。
🔥Linux权限管理
01.文件访问者的分类
- 文件和文件目录的所有者:u—User(拥有者)
- 文件和文件目录的所有者所在的组的用户:g—Group(所属组)
- 其他用户:o—Other(other)
02.文件类型和访问权限(文件属性)
我们通过ll指令展现出文件列表及其对应的属性。
开头的第1个字符表示文件的类型,而2~10的九个字符表示的就是三类不同访问者的权限。九个字符三三为一组,分成三组。
文件类型(第1个字符):
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
基本权限(第2~9个字符):
r:读权限。对文件而言,具有读取文件内容的权限;对目录来说,既有浏览该目录信息的权限。
w:写权限。对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件的权限。
x:执行权限。对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
-:代表不具有该权限。
03.文件权限值得表示方法
字符表示法:
8进制数值表示法:
04.文件访问权限的相关设置方法
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
说明:只有文件的拥有者和root用户才可以改变文件的权限
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
文件访问权限增删:
chmod o+w file ->给file文件other增加写权限
chmod u+x file ->给file文件拥有者增加可执行权限
chmod g+r file ->给file文件所属组增加读权限
chmod u-w file ->给file文件拥有者去除w权限
chmod u+rw file ->给file文件拥有者增加w和r权限
chmod a+rwx file ->给file文件所有类型访问者增加所有权限
八进制权限修改:
chmod xxx(三个八进制数) file
改文件拥有者:
chown [name] testfile.txt
改文件所属组:
chgrp [name] testfile.txt
同时更改文件拥有者和所属组:
chown [name1]:[name2] testfile.txt
注 :普通用户无法改拥有者和所属组,只能通过root权限更改。
问:为什么新建目录默认权限是775,而新建普通文件是664?
这是因为计算机中存在权限掩码,最终权限=起始权限&(~权限掩码),而umask指令可以帮助查询到我们机器的权限掩码。
🔥目录的权限
- 可执行权限(x):如果目录没有可执行权限,则无法cd到目录中。
- 可读权限®:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容。
- 可写权限(w):如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
到这里会有一个问题,只要用户有一个目录的写权限,就可以随意删除目录中的文件,不论这个用户是否有文件的写权限。
没有文件的写权限却能删除该文件,这样明显是不合理的。
[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
为了解决此问题,Linux引入了粘滞位的概念。
🔥粘滞位
[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)后,该目录下的文件只能由:
- 超级管理员(root)删除
- 该目录的所有者删除
- 该文件的所有者删除
目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限,而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
🌈结语
本编博客主要讲解了,Linux权限的概念以及权限的管理方式。通过精细控制对文件和目录的访问,Linux权限机制有助于防止未授权的数据访问和操作,从而提高系统的安全性。熟练掌握权限的规则和使用,有助于维护系统的稳定性和可靠性。