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的顺序。


总结

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

相关推荐
A小辣椒15 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒19 小时前
TShark:基础知识
linux
AlfredZhao21 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式