『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 目标文件

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

▶ 超级管理员删除;

▶ 该目录的所有者删除;

▶ 该文件的所有者删除。


目录
相关文章
|
14天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
40 1
linux权限管理
|
14天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
51 3
|
2月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
224 73
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
83 14
|
1月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
56 1
|
1月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
26 0
Linux入门1——初识Linux指令
|
1月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
1月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
26 0
|
4天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
21 3