🌟hello,各位读者大大们你们好呀🌟
🍭🍭系列专栏:【Linux升级之路】
✒️✒️本篇内容:简单介绍Linux用户概念及用户转换,Linux权限管理(文件和目录权限),引出粘滞位的概念、解析其用法,最后对一些易错知识点进行总结
🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-
📡📡书接上回:1_Linux常见指令 | 保姆式入门 | 深度刨析
目录
Linux下有两种用户:超级用户(root)、普通用户。
root用户切换成普通用户 - 不需要密码
su XXX(普通用户名)
普通用户切换成root用户 - 需要输入密码
- su #重新登陆,初始态回到家目录
- su- #登陆root,仍在当前路径
- ctrl+d #返回普通用户
我是普通用户,我想用root身份执行一条命令,但是不想切换用户
sudo - 需要修改权限,这里暂时不讲
为什么root设置的密码不要和普通用户的密码相同?
避免用户转换是系统出现混淆,保障服务器安全
什么是权限?
权限可以解读为:一些事情是否被允许谁做。
关键就在于谁(人)和 做(文件),所以我们可以延伸出下面的理解:
文件权限 = 人 + 文件属性
【注意】拥有者和所属组都是一个具体的人,other是除拥有者所属组以外的所有人

我们可以用 ll(ls -l)指令查看当前目录下的文件属性
![]()

Linux通过ll(ls -l)指令显示众多文件属性的第一行第一个字母区分文件类型
- d:文件夹(目录文件)
- -:普通文件(源代码、库文件、可执行程序、文件压缩包等)
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
【注意】Linux和window(文件后缀)差别很大,window通过文件名后缀区分文件类型,Linux的文件类型与后缀无关,但仍可以自定义文件名后缀用以提示区分。
【注意】gcc等工具可能会对文件后缀有要求
主要体现在文件属性第2-10位


小练习:
![]()
答案:文件类型-普通文件,拥有者-可读可写不可执行,所属组-可读不可写不可执行,other-可读不可写不可执行。


功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
使用方法①:用户表示符(+/- = )权限字符
用户符号:
权限调整符号:
示例:
- # chmod u+w /home/abc.txt #拥有者增加写权限
- # chmod o-x,u+w /home/abc.txt #other减少执行权限,拥有者增加写权限
使用方法②:三位8进制数字
【注意】此方法对应上面描述的8进制数值表示方法
示例:
# chmod 664 /home/abc.txt
#拥有者、所属组可读可写,other只可读
# chmod 640 /home/abc.txt
#拥有者可读可写,所属组只可读,other无权限
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例:
chown ldx test.txt #将test.txt文件的拥有者改为ldx
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
功能说明:辨识文件类型
语法:file [选项] 文件或目录...
实例:
- [root@VM-12-11-centos ~]# file note
- note: directory
Linux规定目录
为什么这么规定
目录创建出来,一般都要可以进入
文件创建出来,一般都要可以进入,大部分不用可执行
为什么具体权限和八进制对应权限不同
因为系统中存在一个权限掩码(umask),凡是在权限掩码(umask)规定范围内的起始权限,都要在二进制中去掉
系统会默认设置好umask值 —— 这里0002

通过上面权限的学习,我们知道了用户只要有写的权限,就可以在一个目录中新建和删除文件。
Linux可以创建公共目录,用于给同一台服务器的所有用户使用。在公共目录中,只对目录中的文件进行了读、写、可执行三个权限默认限制,并没有对公共目录的写权限进行默认限制。
换句话来讲,一个普通用户也可以将公共目录删除,这也就出现了问题......
这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们通过Linux操作来验证一下:
- [root@localhost ~]# touch /home/root.c
- [root@localhost ~]# ls -l /home/ #查看家目录文件
-
- -rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
- drwxr-xr-x. 27 ldx ldx 4096 9月 19 15:53 ldx
- -rw-r--r--. 1 root root 0 9月 19 15:59 root.c
-
- [root@localhost ~]# su - ldx #从root用户登陆ldx普通用户
- [litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
- rm:是否删除有写保护的普通空文件 "/home/root.c"?y
-
- [ldx@localhost ~]$ exit #退出此登录用户,返回上一级登陆用户
- logout
可见,一个普通用户也可以将公共目录删除,Linux为了解决这个问题,提出了粘滞位。
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
【用法】chmod +t 目录名
接下来,我们直接看一组粘滞位的应用
- [root@localhost ~]# chmod +t /home/ #给公共目录home加上粘滞位
- [root@localhost ~]# ls -ld /home/
- drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
-
- [root@localhost ~]# su - ldx
- [ldx@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
- rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
- rm: 无法删除"/home/abc.c": 不允许的操作
🌹🌹Linux的权限入门知识大概就讲到这里啦,博主后续会继续更新Linux操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪