文章目录

  • 一、Linux下的用户
  • 二、文件的权限
    • 1. 文件访问者的分类
    • 2. 文件类型和访问权限
    • 3. 文件权限值的表示方法
  • 三、文件访问权限的相关设置方法
    • 1. chmod
    • 2. chown
    • 3. chgrp
    • 4. umask(重点)
  • 四、file指令
  • 五、目录的权限
    • 粘滞位

一、Linux下的用户

这里我们在上一篇:基本指令篇,开头稍微讲解了一些,接下来我们具体的讲一讲:

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令: su [用户名] (su - [用户名])(后面的目录可以切换到用户的家目录下,路径发生改变,前者路径不发生改变)
功能: 切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

命令: sudo
功能: 不切换用户,就仅仅让普通用户,在一行内提权,以root的身份,执行对应的指令

sudo command,短暂提权 --> root执行命令


建议: 不推荐将root密码和普通用户密码设为一致的

二、文件的权限

权限 = 人 + 事物的属性

权限描述的就是人和事物属性的关系。接下来的文件访问者的就是人,文件属性就是事物属性。

1. 文件访问者的分类

文件访问者分为三类:

  • 拥有者(owner):即创建文件的用户
  • 所属组(group):拥有者所在的组,如果文件访问者只分拥有者和其他人的话,不便于多用户协作
  • 其他人(others):除了拥有者和所属组之外的都是其他人。


上图用框框出的第一列是文件的拥有者,第二列是所属组。由于用户较少所以自成一组
拥有者、所属组和其他,都是针对文件划分出的角色,而 root 和普通用户指的是具体的用户人

后面一列是文件的大小,再后面一列是文件的创建时间或最近修改时间。

2. 文件类型和访问权限

在上一篇中我们也稍微提到过,文件 = 内容 + 属性

而文件的属性数据我们知道的可就太多了,这里我们就讲解重要的两点,先看下图:


从上图可以清晰的看出,前面的一整块共有10列,共分成4组,第一列自成一组,之后每三列成一组,分别用不同的颜色框了起来。

而从我们学习指令到现在,我们可以发现,我们只要创建一个文件或目录,当我们查看文件的详细属性信息时,前面都有这么一大块,而这一大块代表什么呢?

1.文件类型:

通过ll显示的众多属性列中的第一列,在Linux中是用以区分文件类型的。一般有两种:- 代表普通文件,d代表目录。

注意: Linux中不以文件后缀作为区分文件的方式,只以属性的第一列进行区分。

  虽然Linux的文件类型与文件后缀无关,但并不意味着我们不可以使用后缀区分文件类型,而且我们Linux中的一些工具对文件后缀可能就有要求,比如在Linux中创建一个 .c 文件,我们可以在里面写代码,然后通过gcc工具编译运行,可以生成可执行程序,但如果是一个 .txt文件,就算我们在里面写了代码,我们gcc也编译不了它,更不可能生成可执行程序。

常见文件类型有以下几种:

前面标红的两个是我们必须要掌握的。

2.文件的权限属性:
上面讲了那么多,仅仅说的是属性的第一列,那还剩下的9列呢?

剩下九列,三三为一组,分别代表的是文件拥有者所属组其他人对文件的权限。

文件的权限分三种

  1. r :读权限,read对于文件而言,具有读取文件内容的权限;对于目录而言,具有浏览该目录信息的权限
  2. w:写权限,write对于文件而言,具有修改文件内容的权限;对于目录而言,具有创建或删除目录下文件的权限
  3. x:执行权限,execute对于文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限
  4. "”表示不具有该项权限

注意:拥有的权限对应位置是固定的,从左到右分别是,r,w,x。若对应位置没有该项权限,则用-表示。

3. 文件权限值的表示方法

  1. 字符表示法
      字符表示法就如上图所示。
Linux表示 说明 Linux表示 说明
r-- 只读 -wx 可写可执行
-w- 只写 r-x 可读可执行
--x 仅可执行 rwx 可读可写可执行
rw- 可读可写 --- 无任何权限
  1. 8进制数字表示法
权限符号 八进制 二进制
r-- 4 100
-w- 2 010
--x 1 001
rw- 6 110
r-x 5 101
-wx 3 011
rwx 7 111
--- 0 000

总结:
我们上方所讲的文件的权限用下图总结表示出,这样更加清晰:

三、文件访问权限的相关设置方法

修改文件的权限分为两种,一是修改文件的读写执行属性,二是修改文件的拥有者和所属组。先看第一种:

1. chmod

chmod可以针对三种访问者修改文件的读写执行权限

说明:只有文件的拥有者和root用户才可以改变文件的权限

chmod命令修改文件权限值的格式

① 用户表示符 +/-/= 权限字符

+:增加权限
-:取消权限
=:赋予权限 - - 相当于赋值,会覆盖其他权限

用户符号:
u:拥有者
g:所属组
o:其它用户
a:所有用户

具体如下:

# u表示拥有者user
[wyt@VM-20-4-centos lesson3]$ chmod u+x test.c  #给拥有者添加执行权限
[wyt@VM-20-4-centos lesson3]$ chmod u-w test.c  #给拥有者取消写权限
[wyt@VM-20-4-centos lesson3]$ chmod u=r test.c  #给拥有者赋予读权限
# g表示所属组group
[wyt@VM-20-4-centos lesson3]$ chmod g+w test.c  # 给所属组添加写权限
[wyt@VM-20-4-centos lesson3]$ chmod g-r test.c  # 给所属组取消读权限
[wyt@VM-20-4-centos lesson3]$ chmod g=x test.c  # 给所属组赋予执行权限
# o表示其他人other
[wyt@VM-20-4-centos lesson3]$ chmod o+w test.c  # 给其他用户添加写权限
[wyt@VM-20-4-centos lesson3]$ chmod o-r test.c  # 给其他用户取消读权限
[wyt@VM-20-4-centos lesson3]$ chmod o=x test.c  # 给其他用户赋予执行权限

执行效果如图(只列举其一):

chmod 支持连续修改多个访问者的权限,也支持连续修改单个访问者的多个权限,也支持连续修改多个访问者的多个权限,也支持连续操作多个文件。

②使用八进制方法修改权限

  说明:

[wyt@VM-20-4-centos lesson3]$ chmod 000 test.c  # 权限值为0也就是---
[wyt@VM-20-4-centos lesson3]$ chmod u-rwx,g-rwx,o-rwx test.c  #这两种写法是一致的[wyt@VM-20-4-centos lesson3]$ chmod 664 test.c  #权限值为664也就是rw-rw-r--
[wyt@VM-20-4-centos lesson3]$ chmod u+rw,g+rw,o+r test.c  #这两种写法是一致的

2. chown

chown 可用于修改文件的拥有者,也可以将文件拥有者和所属组一同修改

格式: chown 用户名 文件名

示例1: 修改文件拥有者

可以看出,文件是不能随便更改所有者给别的用户的,即使是文件所有者也不行

那如何进行修改呢?
我们在本文最初就讲过,root用户是超级管理员用户,它是不受权限的约束的,我们在上一篇也学过一条指令sudo命令,可以暂时提权,所以修改方式如下:


示例2: 一同修改文件拥有者和所属组

3. chgrp

chgrp 则是用于修改文件的所属组
格式: chgrp 用户组名 文件名

示例:

4. umask(重点)

为什么我们创建的目录或者普通文件,默认权限就是 我们所看到的样子呢?比如:

其实在Linux中规定

  • 目录的起始权限是:777
  • 普通文件的起始权限是:666

但我们所看到的权限也不是777和666呀,这是为什么呢?

其实在系统中还有一个umask:叫做权限掩码

我们只需要关注后面三个数字即可,第一个数字不需要关心。

系统默认会配置好umask 权限掩码:

  • 超级用户默认掩码值为0022
  • 普通用户默认为0002

说这么多,那权限掩码和我们创建的文件权限有什么关系呢,有什么功能呢?

权限掩码:凡是在umask中出现的权限,都必须在起始权限中去掉

就拿我们上面创建的目录和文件举例:

我们除了可以查看umask权限掩码的值,还可以进行修改:

# umask //查看
# umask 044//设置

示例1:

示例2:

讲了这么多,上述也列举了例子,那这到底是如何计算的呢?是用减法吗?----不是!

计算方法如下:

示例: 拿普通文件举例

与实际结果也一致:

四、file指令

功能说明:辨识文件类型
语法:file [选项] 文件或目录.
常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

五、目录的权限

经过上面的讲解,普通文件的读写执行分别代表着什么含义,这对于我们来说是很明确的。但目录的读写执行分别又代表什么意义呢?与普通文件有什么不同呢?

目录下的三种权限

  • 可执行权限(x): 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  • 可写权限(w): 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

示例1: 去掉目录的可执行权限,观察是否可以进入目录

示例2: 去掉目录的可读权限,看是否可以ls该目录查看它下面的文件

示例3: 去掉目录的可写权限,看是否可以在该目录下创建或删除文件

粘滞位

Linux系统中有很多人,当我们需要在一个公共的目录下,进行临时文件的操作(增删查改)

根据目录的权限规定,只要用户对目录具有写权限,那么目录内的他人所创建的文件,用户不经他人同意也可以删除。
所以让一个公共目录,大家可以各自进行rwx操作,但是,禁止大家互删对方文件!我们可以给目录设置粘滞位(权限的一种特殊情况)

当一个目录被设置粘滞位时,该目录只能被三种用户删除:

  • 超级用户root
  • 用户所有者
  • 用户所属组

Linux系统根目录下默认有一个公共目录:tmp

注意:设置粘滞位,需要用root用户来设置,普通用户不能设置。

注意,粘滞位是对目录进行修改的,对目录下的所有文件生效

【Linux系统】第二篇、权限管理篇相关推荐

  1. imx6ull移植Linux系统第二篇——Linux内核的移植

    imx6ull移植Linux系统第二篇--Linux内核的移植 花了大概两周的时间,把Linux的移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot.系统镜 ...

  2. linux系统移植篇(二)—— Uboot使用介绍

    linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...

  3. Linux系统文件安全与权限

    上篇文章详细介绍了通过文件压缩程序和归档程序,从而掌握在linux系统中如何归档和备份数据.那么,今天,这篇文章还是回到linux的基础知识体系中,今天主要围绕linux系统中的权限展开描述. 综所周 ...

  4. 学着学着Linux系统写篇心得

    2019独角兽企业重金招聘Python工程师标准>>> 学着学着Linux系统写篇心得 本学期对于linux系统的学习,和自己买的一本<linux就该这么学>这本书,让我 ...

  5. linux文件权限umask,linux系统中UMASK权限的用法讲解

    原标题:linux系统中UMASK权限的用法讲解 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限. 这里要说明两点: 1.针对目录来说x权限代表可以进入该目录,所以说对于这个权限初 ...

  6. STM32MP157系列教程连载-Linux系统移植篇4:STM32MP1微处理器之Bootloader移植

    STM32MP157系列教程连载-Linux系统移植篇4:STM32MP1微处理器之Bootloader移植 第 1 章 BootLoader(Uboot)移植 1.1 实验原理 1.1.1 概念 简 ...

  7. linux系统移植篇(四)—— 根文件系统使用介绍

    linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...

  8. Linux系统中的权限详解

    我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险.所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要. 一.文件基本权限 首先看下linux ...

  9. linux给目录赋访问权限_【Linux】Linux系统中的权限详解

    我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险.所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要. 一.文件基本权限 首先看下linux ...

  10. Linux系统入门篇(4)- Linux目录简介

    文章目录 前言 一./boot 二./boot/efi 三./ 1. /bin- 所有用户的二进制命令目录 2. /etc - 配置文件目录 3. /dev - 设备文件目录 4. /proc - 进 ...

最新文章

  1. pdo php分页6,php pdo自动分页类代码与例子
  2. BZOJ-2716-天使玩偶angel-CDQ分治
  3. Html爱情表白动画
  4. 选择控件— UI组件系列
  5. JAVA8 ARRAY、LIST操作 汇【5】)- JAVA8 LAMBDA LIST统计(求和、最大、最小、平均)
  6. keras实现简单lstm_深度学习(LSTM)在交通建模中的应用
  7. PerfMa“寒泉子”李嘉鹏:成长和创业都要能人所不能,真强者何惧资本寒冬
  8. 猛男教你写代码_猛男程序员,鼓存储器和1960年代机器代码的取证分析
  9. Unity Shader 详细自学(一)
  10. 周末分享 | 2019年最好的演讲:别让任何人打乱你的人生节奏
  11. java如何表格一样对齐_如何水平对齐表格? (How can I horizontally align a form?)
  12. 2021年软件定义通信发展环境(PEST)分析:新兴网络业务推动软件定义通信行业发展 [图]
  13. 可爱的玩笑匹配者可以使用vue-test-utils测试Vue组件
  14. mysql数据库储存过程
  15. 若依打包如何分离jar包和资源文件?
  16. 【算法竞赛进阶指南】POJ 3349 —— SnowflakeSnowSnowflakes
  17. 从这 5 个场景 , 看 MPC 多方安全计算的行业应用
  18. 如何选择服务器的类型
  19. 基于微信小程序的电影院购票平台
  20. 远程桌面对方计算机无法远程,win7开启QQ远程协助无法连接对方电脑如何解决

热门文章

  1. MVC编程实例----简易电子商务网站(一)
  2. 五轴数控转台_你真的足够了解五轴加工吗?看完豁然开朗!
  3. c语言编程代码对齐快捷键,三、Windows键盘快捷键—键盘代码转换
  4. linux java修改defaultcharset,-Dfile.encoding与Charset.defaultCharset
  5. Java在线鲜花商城源码(电商购物系统)(含源码+论文+答辩PPT等)
  6. TCP 网络编程API - listen()、accept()
  7. 京东商品图片爬虫+keras图像分类
  8. ERROR Nacos failed to start, please see
  9. 因被黑客窃取190GB文件,厄瓜多尔国营电信公司决定“上云”|钛快讯
  10. [管理员手册](一)主板bios更新和固件远程管理