『Linux从入门到精通』第 ⑤ 期 - 用户分类+权限管理+umask+粘滞位说明

简介: 『Linux从入门到精通』第 ⑤ 期 - 用户分类+权限管理+umask+粘滞位说明

0000000000000.png

目录


用户分类

su指令

认识Linux权限

文件访问者的分类

文件类型和访问权限

文件类型

file指令

访问权限

文件权值的表示方法

字母表示法

八进制表示法

如何修改文件访问者的权限及相关指令

chmod指令

chown指令

chgrp指令

权限掩码与umask指令

umask指令

目录的权限

粘滞位


文章导读


本章主要内容有认识Linux中的用户分类、认识Linux权限相关知识,学会如何查看权限与修改权限、认识粘滞位等等。

我们对权限并不陌生,权限代表着限制。对于某些用户做一些事情是可以的,但其他人却不行。

22.png

同样的,在Linux中也存在着权限的概念。既然是限制,那就得针对用户身份,所以Linux中,对于用户身份也有着分类。


正文


用户分类


Linux下有两种用户:

超级用户(root):可以再linux系统下做任何事情,不受限制;

15.png

普通用户:在linux下做有限的事情。

16.png

其中,超级用户只能有一个,而普通用户可以有很多个。如何添加普通用户我之前已经提到过这里就不作赘述


su指令


功能:用来切换用户身份;(例如,有些时候,作为普通用户没有权限做某些事,可以临时切换为root身份)

语法:su + [用户名字] (su root 此时root可以省略)


认识Linux权限


当我们用 ll(等于ls -l)显示文件的详细信息时:

17.png


我们并不知道红色方框中的内容代表什么意思,但是有些能大概猜出来。例如,7 表示的是文件名;6 代表的是文件创建时间;5 代表文件的大小(单位:字节)。

至于其他的内容我们并不清楚,接下来的内容就是认识它们。


文件访问者的分类


当我们要访问某个文件时,我们的身份又有了重新的划分:

文件和文件目录的所有者:u---User;

文件和文件目录的所有者所在的组的用户:g---Group;

其它用户:o---Others ;

对于不同身份的文件访问者,都有各自的权限;


文件类型和访问权限


我们之前看到的第 1 个红框中,有这些符号:

19.png

其中第一列代表的是文件类型,其余的代表访问权限。


文件类型


d:文件夹

-:普通文件

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

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

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件


file指令


功能:查看文件类型;

语法: file [选项]  目标文件或目录

常用选项:

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

实际上Linux系统并不会识别你自己取得文件后缀(例如 test.txt 和t est.c),在系统眼中,它们都是普通文件。但是系统不关心并不代表某些软件不关心(例如不能用gcc编译  .txt文件),所以文件后缀一般还是不要省略。


访问权限


20.png

除了第一列,剩下得每 3 个为一组,分为三组。

第一组表示文件和文件目录的所有者(user)的权限;

第二组表示文件和文件目录的所有者所在的组的用户(group)的权限;

第三组表示其他用户(other)的权限。


文件权值的表示方法


字母表示法


23.png


八进制表示法


24.png


如何修改文件访问者的权限及相关指令


chmod指令


功能:设置文件的访问权限;

语法:chmod [选项]  目标文件

常用选项:

-R :递归修改目录文件的权限

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

chmod指令的不同格式:

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

+:向权限范围增加权限代号所表示的权限;
-:向权限范围取消权限代号所表示的权限;
=:向权限范围赋予权限代号所表示的权限;
用户符号:
u:拥有者
g:拥有者同组用户
o:其它用户
a:所有用户

示例

chmod u+r test.txt
chmod u-w test.txt
chmod u+r,u+w,o+x test.txt
chmod a+r test.txt
chmod a-w test.txt

②三位8进制数字

示例:

chmod 000 test.txt
chmod 777 test.txt
chmod 667 test.txt


chown指令


功能:修改文件的拥有者;

语法:  chown [选项] username 目标文件

常用选项:

-R :递归修改目录文件的拥有者

示例:

chown root test.txt
chown -R hxy mydir


chgrp指令


功能:修改文件或目录的所属组;

语法:  chgrp [选项] 用户所属组名 目标文件

常用选项:

-R :递归修改目录文件的所属组

示例:

chgrp root test.txt
chgrp -R hxy mydir


权限掩码与umask指令


文件的权限生成其实是有一个过程的,有这样一个问题,为什么我们创建一个新文件时,它的权限是我们看到的那个样子?我们能修改这个默认的权限吗?


我们最终所看到的权限就是默认权限也叫最终权限,它的生成经过这样的过程:


最终权限 = 起始权限 & (~umask) (umask为权限掩码)。


起始权限:系统设定的,及文件一出生系统认为应该带有的权限。普通文件:666;目录文件:777。


权限掩码:三位八进制数字,用来控制最终权限的生成。


umask指令


功能:查看或修改文件掩码;

语法:  umask 权限值

示例:26.png


目录的权限


可执行权限 x :如果目录没有可执行权限,则无法cd到目录中;

可读权限 r :如果目录没有可读权限, 则无法用 ls 等命令查看目录中的文件内容;

可写权限 w :如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。

有个疑问:故事如下:


在公司里,张三和李四共同掌管一个共享目录。该共享目录由老板 root 创建,且对于other有rwx权限(意味着谁都可以在共享目录创建或删除文件)。


张三在共享目录下创建了一个文件,对other的权限只开放了 r 与 x;意味着李四只能读文件而不能修改内容。但是李四心生歹意,你不让我写。我就删掉你的文件。结果该文件被删除,对张三乃至公司造成了极大的损失...


那么有什么办法能限制其他人不能在共享目录删除我的文件呢?


答案是,当然有,就是给共享目录添加粘滞位。


粘滞位


添加方法:

chmod +t 目标文件

当一个目录被设置为"粘滞位",则该目录下的文件只能由

▶ 超级管理员删除;

▶ 该目录的所有者删除;

▶ 该文件的所有者删除。


目录
相关文章
|
6天前
|
Unix Linux
【Linux】详解信号的分类&&如何自定义信号的作用
【Linux】详解信号的分类&&如何自定义信号的作用
|
1天前
|
运维 关系型数据库 MySQL
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
|
1天前
|
运维 Linux Shell
day03-Linux运维-Xshell优化和Linux系统命令入门(1)
day03-Linux运维-Xshell优化和Linux系统命令入门(1)
day03-Linux运维-Xshell优化和Linux系统命令入门(1)
|
6天前
|
Linux 芯片 Ubuntu
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
|
6天前
|
Ubuntu Linux
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
|
6天前
|
Linux 芯片
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
|
6天前
|
Linux C语言 Ubuntu
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
|
6天前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
8 0
|
6天前
|
缓存 安全 Linux
Linux入门基本指令(2)
Linux入门基本指令(2)
13 0
|
6天前
|
Linux Windows
Linux入门基本指令(1)-2
Linux入门基本指令(1)
12 1