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

avatar
作者
筋斗云
阅读量:3

目录

💐专栏导读

💐文章导读 

🌷用户分类

🌺su指令

🌷认识Linux权限

🌺文件访问者的分类

🌺文件类型和访问权限

🌼文件类型

🌼file指令

🌼 访问权限

🌺文件权值的表示方法

🌼字母表示法

🌼八进制表示法

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

🌺chmod指令

🌺chown指令

🌺chgrp指令

🌺权限掩码与umask指令 

umask指令

🌷目录的权限

🌺粘滞位


💐专栏导读

🌸作者简介:花想云,在读本科生一枚,致力于 C/C++、Linux 学习。

🌸本文收录于Linux从入门到精通 系列,本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

🌸相关专栏推荐:C语言初阶系列 、C语言进阶系列 数据结构与算法

💐文章导读 

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

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

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

🌷用户分类

Linux下有两种用户:

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

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

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

🌺su指令

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

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

🌷认识Linux权限

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

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

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

🌺文件访问者的分类

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

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

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

其它用户:o---Others ;

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

🌺文件类型和访问权限

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

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

🌼文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

🌼file指令

功能:查看文件类型;

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

常用选项:

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

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

🌼 访问权限

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

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

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

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

🌺文件权值的表示方法

🌼字母表示法

🌼八进制表示法

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

🌺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 权限值 

示例:

🌷目录的权限

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

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

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

有个疑问:故事如下:

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

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

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

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

🌺粘滞位

添加方法:

chmod +t 目标文件

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

▶ 超级管理员删除;

▶ 该目录的所有者删除;

▶ 该文件的所有者删除。

 

点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!