Linux 权限
shell 命令及其运行原理:Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
从技术角度,shell的最简单定义:命令行解释器 主要包含:
将使用者的命令翻译给核心(kernel)处理
同时,将核心处理的结果翻译给使用者
Linux 权限概念:
Linux下有两种用户:超级用户(root),普通用户
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
su 指令:切换用户
语法:su [用户名]
从超级用户切换到普通用户,使用 su user。
前面提到过,普通用户执行一条命令,但是没有权限,可以使用sudo command,短暂的提权,使用root身份执行命令。但是现在我们使用sudo进行提权还是不能成功,是因为系统并不信任这个用户,需要将当前用户添加到/etc/sudoersz中,后面我们再说这个配置问题。
什么是权限:
权限是约束人的(一个人或某些群体)
权限:一件事情是否允许被谁做。
Linux权限更多是文件权限
文件权限 = 人 + 文件属性

文件属性:r(读) w(写) x(执行)

文件类型:

注意:Linux和windows(文件的后缀)差别很大,Linux与文件后缀无关,但是却可以使用后缀区分文件类型。如果要使用后缀,仅仅是给用户做一个提示符来使用,后缀本质上就是文件名的一部分。gcc等工具,对文件后缀可能有要求。
文件权限相关设置方法:
我们知道文件权限=人+文件属性,因此设置权限时,设置文件属性同时又要设置文件所属角色。
chmod 指令:设置文件的访问权限,只有root和文件拥有者可以改变文件权限
语法:chmod [参数] 权限 文件名
常用选项:
R-> 递归修改目录文件权限
chmod 命令权限值格式:
(1)用户表示符 +/-= 权限字符:



(2)三位八进制数字:


chown 指令:修改文件的拥有者
语法:chown [参数] 用户名 文件名

chgrp 指令:修改文件或目录所属组
语法:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录所属组

权限便于我们系统进行安全管理
为什么我们创建的文件或者目录,默认权限是我们看到的样子:
Linux 规定:目录起始权限 777,普通文件起始权限 666
umask 指令:查看或修改文件掩码
超级用户默认掩码值为0022,普通用户默认为0002。
系统默认配置号umask权限掩码;凡是在umask中出现的权限都必须在起始权限中去掉。
0777 -0022 =0755 :rwx r-x r-x

file 指令:辨识文件类型
语法:file [选项] 文件或目录...
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-z 尝试去解读压缩文件的内容

如果我们要进入一个目录,需要什么权限:
进入目录需要x权限,r权限并不影响进不进目录,而影响进入目录之后能不能查看目录文件列表
w权限也不影响进不进目录,而影响进入目录之后能不能创建文件。
为什么系统规定目录必须是777开始的:
因为所有目录被创建处理,一般都要能被进入,必须要有x权限。
粘滞位:
一般创建目录或文件都会在家目录下创建,只能自己或者root进行操作,其他人不能操作。但是可能存在这样一种情况,允许其他人对自己的文件做一些自己允许权限的操作。
我们知道,Linux是一个多用户操作系统,因此我们需要在一个公共的目录下,允许其他人对临时文件的操作。
Linux 默认公共目录tmp
在公共目录中,各个用户可以自由操作。但是在公共目录下,即使没有其他用户文件的操作权限,仍然可以可以对其进行删除操作。原因在于删除文件,不是由文件权限决定的,而是由目录所决定的。
为了解决这个问题,Linux 引入了粘滞位。
在公共目录下,允许各自rwx操作,为了禁止大家互删对方文件,需要给目录设置粘滞位。
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
1.超级管理员删除
2.该目录的所有者删除
3.该文件的所有者删除
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)