目录
Linux权限的概念
Linux下有两种用户:root(超级用户),普通用户。
超级用户:可以在linux下做任何事情,没有限制且只有一个超级用户。命令提示符是“#”。
普通用户:只能在linux下做有限的事情,可以有很多个普通用户。命令提示符是“$”。

用户账号之间的切换命令:su
root@ubuntu:/home/slm/113# su slmx//由root转换成slmx(普通用户)
slmx@ubuntu:/home/slm/113$ su root//由slmx转换成root
从普通用户转换成超级用户也可以直接用命令su,后面不用加root。但是普通用户不能切换普通用户。
当我们在普通用户但是不想切换回超级用户,但是想做的是普通用户不能做,只能超级用户做,这时候我们可以给普通用户提高权限。
命令:sudo
即就是用超级用户的权限来执行命令
//把log.txt文件复制到/home/d1路径下且新建test.txt文件中
[slm@localhost home]$ cp log.txt ../d1/test.txt
cp: 无法创建普通文件"../d1/test.txt": 权限不够
[slm@localhost home]$ sudo cp log.txt ../d1/test.txt
[slm@localhost home]$ cd ../d1
[slm@localhost d1]$ ll
总用量 8
drwxr-xr-x. 3 root root 16 5月 18 21:59 d2
-rw-r--r--. 1 root root 138 9月 9 14:22 log
-rw-r--r--. 1 root root 22 9月 9 14:29 test.txt
Linux权限的管理
文件访问者的分类
分为三类:
文件和文件目录的所有者:u——User
文件和文件目录的所有者所在的组的用户(简单来说就是User在谁的组里):g ——Group
其他用户:o——Others(外来者)
文件类型和访问权限
文件类型:
d: 文件夹
_:普通文件
I:软链接(就相当于桌面上的软件(文件)但是它又放在C盘或D盘)

b:块设备文件(例如硬盘,光驱等)
p:管道文件(进程间通信学习)
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
基本权限
读(r):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
写(w):对文件来说,具有修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
执行(x):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
“-”:表示不具有该项权限。
了解命令条

当我们在目录中用ls -l命令的时候会发现:

总的来说:权限=角色(所属者)+文件的权限属性(r/w/x),如果是超级用户,它不受文件的权限约束,但如果是普通用户它会受到文件权限的约束。
文件访问权限的相关设置方法
1.修改所属者的权限
命令:chmod
有两种设置方法:
1.字符表示法
chmod命令权限值的格式:
⽤户表示符+/-=权限字符
◦ +:向权限范围增加权限代号所表示的权限
◦ -:向权限范围取消权限代号所表示的权限
◦ =:向权限范围赋予权限代号所表示的权限
◦ ⽤户符号:
◦ u:拥有者
◦ g:拥有者同组⽤
◦ o:其它⽤户
◦ a:所有⽤户
例如:chmod u+w /home/d1/log //在user权限里加入w权限

同理chmod o-x /home/d1/log //log文件中others没有x权限
chmod a=x /home/d1/log //log文件中所有用户都有x权限
当然,我们也可以多人设置:chmod u+x,g+x,o+x /home/d1/log,用逗号隔开。
2. 八进制数值表示方法
对于文件权限也是有规定的,第一个都是r然后是w再到x,所以八进制就可以清楚表示权限的设置。比如上面一刚开始log文件权限是-rw-r--r--,上面那个命令条那里的图片也提到权限是三个为一组,所以log文件权限也可以表示为110 100 100,对应八进制为644。
想实现和上面一样的权限,那么我么可以用 chmod 744 /home/d1/log。
2.修改文件的拥有者
命令:chown

3.修改文件或目录的所属组(Group)
命令:chgrp

4.权限掩码(umask)
当我们新建文件的时候,我们会发现每个新建的文件的权限都会有一些地方缺省权限,这是因为什么呢?
小知识:
新建文件默认权限为0666(_rw_rw_rw_)
新建目录默认权限0777(drwxrwxrwx)
但是我们发现新建的文件或目录的权限并不是上面默认的那样。原因就是在创建文件或目录的时候还要受umask的影响。假设默认权限为mask,则实际创建出来的文件权限是:mask&~umask.
超级用户的默认掩码值为0022,普通用户默认为0002。
[slm@localhost d1]$ umask//普通用户
0002
[root@localhost d1]# umask//超级用户
0022

用umask也可以对权限掩码进行修改:
[root@localhost d1]#umask 755
[root@localhost d1]# umask
0755
[root@localhost d1]# umask 22
[root@localhost d1]# umask
0022
目录的权限
x权限:无法通过cd命令进入目录
w权限:无法在目录删除,新建文件
r权限:无法通过ls命令访问命令文件的内容
[root@localhost d1]# chmod 0777 /home/d1
[root@localhost d1]# ls /home/d1 -ld
drwxrwxrwx. 3 root root 16 9月 9 16:30 /home/d1
[root@localhost d1]# touch /home/d1/myfile.txt
[root@localhost d1]# ls -l /home/d1
总用量 0
drwxr-xr-x. 3 root root 16 3月 13 15:32 d2
-rw-r--r--. 1 root root 0 9月 9 16:32 myfile.txt
[root@localhost d1]# su - slm
上一次登录:二 9月 9 16:28:03 CST 2025pts/2 上
[slm@localhost ~]$ rm -f /home/d1/myfile.txt
[slm@localhost ~]$ ll /home/d1
总用量 0
drwxr-xr-x. 3 root root 16 3月 13 15:32 d2
这时我们发现了我们用超级用户写的文件,别人只有有w权限就可以删除超级用户的文件,所以linux引进了粘滞位。
[slm@localhost ~]$ ll /home/d1
总用量 0
drwxr-xr-x. 3 root root 16 3月 13 15:32 d2
-rw-r--r--. 1 root root 0 9月 9 16:40 myfile.c
[slm@localhost ~]$ sudo chmod +t /home/d1
[slm@localhost ~]$ rm -f myfile.c
[slm@localhost ~]$ ll /home/d1
总用量 0
drwxr-xr-x. 3 root root 16 3月 13 15:32 d2
-rw-r--r--. 1 root root 0 9月 9 16:40 myfile.c
当⼀个⽬录被设置为"粘滞位"(⽤chmod +t),则该⽬录下的⽂件只能由
1. 超级管理员删除
2. 该⽬录的所有者删除
3. 该⽂件的所有者删除
4301

被折叠的 条评论
为什么被折叠?



