Linux系统篇,权限(一):用户创建与切换、权限及角色定义与修改、文件权限二进制表示

系列文章目录

第二章 Linux的权限管理与使用


文章目录


前言

本节是开启Linux中关于权限的第一节内容,本章将围绕其权限管理和限制来讲解,它是我们今后学习如何处理文件与目录的关键一课,让我们废话少说,开始今天的讲解。


一、用户

Linux用户分为两种:root用户和普通用户。root用户有且仅有一个,是超级管理员,可以随意操作文件;而普通用户为泛指比如sxr,syf等等自定义命名。

1.1 root用户

root用户即登录root账号并输入云服务器密码的用户。

root 账户是 Unix/Linux 及类 Unix 系统(含 Android)里的超级管理员账户,UID 固定为0,拥有系统最高权限。

1.2 普通用户

普通用户是root用户创建的,只要机器允许就可以存在多个,是通过命令行创建的。

普通用户:Linux 里权限受限的日常登录账号,没有系统最高权限,只能操作自己有权限的文件和目录。

普通用户是root账户,使用useradd和passwd创建的如图:

  当然还有删除用户的指令urerdel 用户,普通用户登录时把用户名修改为要登陆的即可。

1.3 用户切换

当我们想要切换用户时,现在我们现在常常选择退出再登录另一个用户,其实有一个命令可以直接切换用户。

1.3.1 su 命令

  • 语法: su [选项] [用户名]
  • 功能: 切换当前登录用户身份,或在不同用户环境下执行命令
  • 常用选项:

用户名 :登录该用户,且保持操作目录(不输入则默认root)
- 用户名:登录该用户,返回到家目录(不输入则默认root)

当然还需要输入该用户的密码,但root变成普通用户不需要输入密码 (这体现了最高管理权)

1.3.2 sudo 命令 及 sudoers

  • 语法: sudo [选项] 命令
  • 功能: 普通用户临时借用管理员权限执行命令
  • 常用选项:

sudo 命令 :临时用 root 权限执行单条命令
sudo -l :查看当前用户拥有的 sudo 权限
sudo -k :清空密码缓存,下次 sudo 必须重新输密码

我们看sudo登录时输入自己的密码就可以指令提权,那这样不就没有存在的意义了吗?其实不然直接sudo会有如下结果:

其实Linux不傻,它有这样的机制------类似白名单能够记录某些用户从而允许sudo的使用,如同看门大爷只看见熟悉和特殊特征的人才放行。

这样的白名单就叫:sudoers ,位置为: /etc/sudoers ,并且这个文件只有root才能修改,一般不要随便修改。

这个就是修改白名单的位置。


二、权限

2.1 权限是什么

权限的本质就是:对于某个人能或不能做某件事情

核心定义: Linux 权限是一套控制文件 / 目录访问规则的机制,决定了谁(用户 / 组)能对文件做什么(读 / 写 / 执行)。

2.2 权限的作用

权限的限制作用起到多种规定:

  1. 控制用户行为,防止错误的发生: 如 rm -rf 的使用
  2. 权限首先限制的是角色,权限要求目标必须具有相对应的属性:如 作为学生就不能随意出入校长办公室;一个观影软件没有刷题的版块。

因此 权限 = 角色 + 文件属性(读,写,执行)

三、角色

3.1 角色含义

角色含义:Linux 把能访问文件 / 目录的人分成三类固定角色,用来分别给不同人设置不同权限。

权限中角色有三种分别为:拥有者、所属组、other ,在文件属性中体现在不同的区块如下图:(大家可以发现没有other,因为除拥有者和所属组外都是other)

tips:用户与角色的区分

用生活类比,用户就是具体的人,角色就是一类人的统称,一个用户可以存在多种角色。如:张三是一个警察,从这可以说张三是个用户,他是警察也是儿子。

3.1.1 所属组

对于所有者和other我们可以见名知意,就是创建者和与这个文件没有任何关系的人,那所属组又是什么呢?这里展开讲解。

所属组是类似小组的意思 ,这里举例说明:如一个公司有两个团队------A组、B组,该公司推行赛马制度即取两个团队最好的程序使用,但由于机器紧张只有一台机器,当团队代码展示时若没有所属组的概念,那么只能修改other的权限,但是就会同时暴露给另一团队,而所属组就可以解决这一问题。


四、文件属性

文件属性就是角色拥有对文件处理能力的权限,本质还是能否进行操作。

定义: 文件属性就是用 ls -l 看到的一整行信息,包含文件类型、权限、所有者、所属组、大小、时间等所有关键信息。

这里只考虑文件的读写及执行权限

r w x :分别代表允许读、允许写、允许执行,不允许则为 - .

4.1 x 执行权限

一个文件具有执行权限不代表可以执行 ,一个文件可以执行的前提是:能力 + 许可,比如一个文本、目录可以被执行吗?

另外x权限还管控能否进入该目录,如图:

4.2 r 执行权限

对于一个文件来说,r的权限是决定是否能查看文件里记录的内容,而对于目录来说则是是否能够查看当前目录中的内容。

4.3 w 执行权限

对于一个文件来说,w的权限是决定是否能修改文件里记录的内容,而对于目录来说则是是否能够在当前目录中创建文件或目录。

权限 文件 目录
r 查看文件内容 查看目录中的文件及目录信息
w 修改文件内容 在目录中创建文件或目录
x 设置为可执行文件 能进入该目录

五、修改权限

修改权限,意味着修改文件的角色或者文件属性,这是在限制保护文件必要的操作。

5.1 chmod 指令

  • 语法: chmod [选项] 权限 文件 / 目录
  • 功能: 修改文件或目录的访问权限(控制谁能读、写、执行)
  • 常用选项:

-R:递归修改,把目录和里面所有文件、子目录一起改权限

用户符号 修改符号
u:拥有者 +:向权限范围增加权限代号所表⽰的权限
g:所属组 - :向权限范围取消权限代号所表⽰的权限
o:其他用户 =:向权限范围赋予权限代号所表⽰的权限
a:所有角色 ...

5.2 修改局限

我们对于一个文件修改权限时,不是想怎么该就能怎么改的,必须在规定的情况下,如果随便修改就会出现错误:如图。

这是因为该文件所有者不是sxr,而是root,因此在没有相应权限的情况下进行相应操作是被系统拒绝的。

5.3 权限位确定规则

在对文件或目录进行操作时,Linux会先查看当先账户的权限,并且一旦确定就不会向后检查改变,查看顺序为:拥有者、所属组、other,常见情况就是:一个用户既是拥有者也是所属组时,会直接匹配到拥有者这个角色。

在修改该文件的所有者后,就可以正常读文件了,因为匹配了所属组的读写权限。


六、修改角色

6.1 chown 命令

  • 语法: chown [选项] 所有者:所属组 文件 / 目录
  • 功能: 修改文件 / 目录的所有者和所属组
  • 常用选项:

-R: 递归修改(目录 + 里面所有文件 / 子目录一起改)

大家修改文件的角色时可能会发现下列报错,这是由于修改角色也是存在限制的。还有chgrp这个指令,这是修改所属组的指令。

6.2 修改限制

大家想一想你斗地主时一手好牌,本来快赢了,突然有人给你塞了几张3,你还怎么玩?这里也同理,我这代码运行的好好的,有人突然给我加了个充满bug的文件,这合理吗?因此,普通用户是不能随便更改一个文件的角色的。

那应该如何改呢?这就需要root用户级别的操作了,即sudo。


七、文件权限的二进制表示

对于文件的读、写、执行权限,无非就是1存在和0不存在的两种关系,而这种关系不就对应了二进制吗?因此还可以通过二进制来修改文件权限,从高位到低位就是r w x的顺序。


总结

本节对于权限的讲解就到此为止了,下一节我们将深入了解权限是如何控制隔离、创建文件目录时默认权限设置的原理等,感谢您的阅读,如有错误请在评论指出或私信我。

相关推荐
原来是猿1 小时前
应用层【协议再识/序列化与反序列化】
linux·运维·服务器·网络·网络协议·tcp/ip
天草二十六_简村人1 小时前
对接AI大模型之nginx代理配置SSE接口
运维·网络·nginx·http·阿里云·ai·云计算
小趴菜克鲁里2 小时前
Cocos Creator 进阶:打造灵活可控的进度条动画组件(循环与分段)
运维·nginx
北风toto2 小时前
log4j中文日志乱码问号-Linux启动jar包,输出中文日志变成问号?
linux·log4j·jar
实心儿儿2 小时前
Linux —— 库的制作和原理(3)
linux·运维·服务器
yyuuuzz2 小时前
独立站部署的几个常见技术问题
运维·服务器·网络·云计算·aws
十子木2 小时前
linux 安装claude code
linux
hzxpaipai2 小时前
网站建设哪家好?从性能、后台和运维看派迪科技的建站思路
运维·科技
a珍爱上了a强2 小时前
配置uboot启动参数,linux启动过程打印每个模块初始化的耗时时间
linux·运维·服务器