Linux权限管理

Linux权限的概念

Linux下有两种⽤⼾:

超级⽤⼾(root)、普通⽤⼾。

• 超级⽤⼾:可以再linux系统下做任何事情,不受限制(除了操作不了正在运行的文件,不过也有办法)。

• 普通⽤⼾:在linux下做有限的事情。

• 超级⽤⼾的命令提⽰符是"#",普通⽤⼾的命令提u⽰符是"$"。

命令:su ⽤⼾名

功能:切换⽤⼾

例如,要从root⽤⼾切换到普通⽤⼾user 用户,则使⽤su user。

要从普通⽤⼾user切换到root⽤⼾则使⽤su root(root可以省略),此时系统会提⽰输⼊root⽤⼾的密码。

Linux权限管理

1. ⽂件访问者的分类(角色)

• ⽂件和⽂件⽬录的所有者:u---User(拥有者)

• ⽂件和⽂件⽬录的所有者所在的组的⽤⼾:g---Group(所属组)

• 其它⽤⼾:o---Others(外人)

用ll查看:

为什么没有Others?因为不是拥有者,不是所属组那就是Others

2. ⽂件类型和访问权限(事物属性)

⽂件类型:

d:⽂件夹

-:普通⽂件

l:软链接(类似Windows的快捷⽅式)

b:块设备⽂件(例如硬盘、光驱等)

p:管道⽂件

c:字符设备⽂件(例如屏幕等串⼝设备)

s:套接⼝⽂件

用ll -a或ll查看文件属性

基本权限:

读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限"-"表示不具有该项权限

用ll -a或ll查看文件属性

其中我们发现框起来的有9个格子,且有rwx ,rw-,---的组合分别是什么意思?

9个格子分成3份,分别,每三份分别代表拥有者,所属组,Others

而每一份中分别代表着对应角色对改文件的读(r),写(w),执行(x)权限。-代表无权。

由上可知,r,w,x的去、状态是二态的,除了有权就是无权(-)。

因此,可以用二进制来表示三种权限:

1 1 1 0 0 0

r w x - - -

其中0表示不具有该权限,1表示具有该权限。

如果将二进制当十进制来看,例如1 1 0相当于是6,其中r为4,w为2,x为0。

如果r ,w ,x都有权限,用十进制表示就是7。

权限修改

chmod

功能:设置⽂件的访问权限

格式:chmod 参数 权限⽂件名

常⽤选项:

• R->递归修改⽬录⽂件的权限

• 说明:只有⽂件的拥有者和root才可以改变⽂件的权限,普通用户只能改自己文件权限。

⽤⼾表⽰符+ / - = 权限字符

+:向权限范围增加权限代号所表⽰的权限

-:向权限范围取消权限代号所表⽰的权限

=:向权限范围赋予权限代号所表⽰的权限

⽤⼾符号:

u:拥有者

g:拥有者同组⽤

o:其它⽤⼾

a:所有⽤⼾

示例:

修改所有者权限:

bash 复制代码
chmod u-r a

修改所属组权限:

bash 复制代码
chmod g+w demo.txt

chown

功能:修改⽂件的拥有者

格式:chown 参数 ⽤⼾名 ⽂件名

实例:

• chown user1 f1

• chown -R user1 filegroup1

将a文件的拥有者权限给user1:

chgrp

功能:修改⽂件或⽬录的所属组

格式:chgrp 参数 ⽤⼾组名 ⽂件名

常⽤选项:-R递归修改⽂件或⽬录的所属组

实例: chgrp users /abc/f2

将a文件的所属组权限给user1:

!!!如果你是文件的拥有者,你也无法修变文件的拥有者,除了root用户。

umask

功能:

• 查看或修改⽂件掩码

• 新建⽂件夹起始权限=666(不带x)

• 新建⽬录起始权限=777(带x)

• 但实际上你所创建的⽂件和⽬录,看到的权限往往不是上⾯这个值。原因就是创建⽂件或⽬录的 时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的⽂件权限是:mask& ~umask

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产⽣建⽴⽂件时预设权限。

超级⽤⼾默认掩码值为 0022,普通⽤⼾默认为0002。

例如我创建一个普通文件,新建文件夹默认权限=666:

其中umask可以修改,但是关闭xshell后还是会回复默认初始值。

重点部分

1.能改任何人的文件权限吗?

除了root用户,普通用户只能更改自己的文件权限。

  1. 如果不具有该权限,我们仍然执行会怎么样?

系统会自动拦截

  1. 确认权限时,如果既是所有者又是所属组,如何确认权限?

在Centor下,用户角色只确定一次,顺序是:所有者,所属组,Others

4.root用户权限?

不收权限约束

  1. 如何理解x可执行权限位?

可执行权限!=文件可以执行,就算文件有x权限位,文件本身不支持执行但仍然执行,就会报错

6.一个文件能否被删除与文件本身权限无关,与文件所处目录的w权限有关。

举例:root用户在我的目录下创建了一个不让我读不让我写的文件,只要我这个目录能写,就能删这个root的文件。

粘滞位

如果两个用户进行文件间的协作开发,就需要在同一个目录(此目录是公共目录,不在任何私人账号下)下修改文件,也就是说此目录的w权限必须放开,假如我的文件被别人不小心删了怎么办?所以Linux就有一个叫做粘滞位的权限位:t

当⼀个⽬录被设置为"粘滞位"(命令:chmod +t 文件名),则该⽬录下的⽂件只能由

  1. 超级管理员删除

  2. 该⽬录的所有者删除

  3. 该⽂件的所有者删除

在公共目录下,该目录有粘滞位,谁都删/改不了别人的文件,只能读取。

相关推荐
Titan20242 小时前
Linux动静态库
linux·服务器·c++
AOwhisky2 小时前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
赵民勇3 小时前
Linux file命令详解
linux·运维
li-xun3 小时前
LINUX DO 社区注册机制调整与公益 AI 服务动态
linux·运维·人工智能
j_xxx404_3 小时前
MySQL表操作硬核解析:从 CREATE TABLE 到磁盘文件、ALTER TABLE 与 DDL 风险
运维·服务器·数据库·c++·mysql·adb·ai
ba_pi3 小时前
k8s删除pod
linux·容器·kubernetes
前端程序猿i3 小时前
Nginx 教程:从入门到能上线
运维·nginx
AskHarries3 小时前
权限模型:Shell、Browser、文件读写的安全边界
服务器·前端·网络
木雷坞3 小时前
Qdrant Docker 部署教程:数据卷、API Key 和集合初始化
运维·docker·容器·知识图谱
wuminyu3 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++