Linux终端之旅: 权限管理三剑客与特殊权限

devtools/2025/1/23 22:43:38/
Linux 权限的概念
Linux 下有两种用户:超级用户( root )、普通用户。
超级用户:可以在linux下做任何事,不受-rwx权限的影响
普通用户:linux使用者,受权限的影响
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
命令:su [用户名]
功能:切换用户。
例如, 要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su  root root 可以省略),此时系统会提示输入 root用户的口令。

 1.linux文件属性

文件访问者分为:

- 文件和文件目录的 所有者(u-Usr)。

- 文件和文件目录的 所有者所在组的用户(g-group)。

- 其它用户(o-Others)。

字符表示权限方法 :

r 、w、x分别表示可读、可写、可执行

开头字符意义:

d:目录-:普通文件c:字符设备文件b:块设备文件p:管道文件c:链接文件

八进制表示权限的方法 :

 

2. 权限管理三剑客

2.1chmod

在 Linux 中,`chmod`(更改模式的缩写)是一条用于更改文件或目录权限的命令。权限决定了谁可以读取、写入或执行某个文件或目录,权限分为以下三组:

1. 拥有者(用户):拥有文件的用户。
2. 所属组:与文件相关联的用户组。
3. 其他人:不属于上述两者的其他用户。

用法格式为:
chmod [类别][操作][权限] 文件名

类别:

- `u`:用户(文件所有者)
- `g`:组
- `o`:其他人
- `a`:所有人(用户、组和其他人)

操作:

- `+`:添加权限
- `-`:移除权限
- `=`:设置为指定权限

权限可以通过字符模式或八进制数值模式来设置:

字符模式
符号模式使用字母表示权限类别和操作。例如:
- `r` 代表读取权限
- `w` 代表写入权限
- `x` 代表执行权限

八进制数字模式
数字模式使用八进制数字表示权限,每个权限类别的值如下:
- `4`:读取权限
- `2`:写入权限
- `1`:执行权限

三个数字分别对应所有者、组和其他人的权限。

例如:

chmod 755 file.txt

表示:

- 所有者 有读、写、执行权限(7 = 4 + 2 + 1)
- 组和其他人 有读和执行权限(5 = 4 + 1)

(1)将可读权限删除后,无法读取内容

(2)可以多项操作

(3)使用八进制修改权限

(4)对所有用户进行操作

使用a或者不用类别

注意:

超级用户(root):可以在linux下做任何事,不受-rwx权限的影响
普通用户:linux使用者,受权限的影响
如果你是超级用户,则不受-rwx权限的影响。
补充:
1.只有文件的拥有者和超级用户可以修改自己的权限
2.可执行程序 = 文件是可执行文件 + 可执行权限(x)
3.user、group、others和我自己进行身份对比时只对比一次

这里“wang”依次和拥有者、所属组进行对比,与拥有者身份匹配成功,拥有者没有读写权限 

更改文件所属组需要root权限或者使用sudo提取权限 

2.2 chgrp

chgrp - 更改文件或目录的所属组
- 语法:chgrp [选项] 新组 文件名
- chgrp 仅更改文件或目录的所属组。

例如:

- 常用选项:

2.3 chown

chown - 更改文件或目录的所有者和组
- 语法:chown [选项] [新所有者][:新组] 文件名
- chown 用于更改文件或目录的所有者或所属组。

(1)更改文件或目录的所有者

(2)更改文件或目录的所有者和所属组

(3)常用选项

3. 关于权限的三个问题

3.1目录权限(控制用户对目录的访问行为)

(1)x:进入一个目录需要的权限

有权限可以进入

 无权限不能进入

(2)r:查看目录需要的权限

有权限可以查看

无权限不能查看

(3)w:在目录中新建文件,删除、修改文件名等修改文件的操作

有权限可以操作

无权限不能操作

3.2 缺省权限(文件和目录的默认权限)

在Linux中,缺省权限(Default Permissions)是指系统为新建的文件和目录分配的初始权限。这个默认权限是通过 umask 值来控制的,`umask` 会“屏蔽”掉某些权限,从而设置文件和目录的初始权限。

(1)初起始限

新文件的起始权限一般为 666(可读写,但无执行权限)。
新目录的起始权限一般为 777(可读写执行)。

(2)umask的权限掩码

- 当 umask 为 022 时,新建文件的权限为 644,新建目录的权限为 755。

我们这里只看后三位,转成二进制的

000 000 010

- 可以通过 umask 命令查看或设置缺省权限的屏蔽位,例如 `umask 777`。 这让我们可以通过修改权限掩码达到修改Linux文件缺省的问题。

(3)最终权限(缺省权限)

最终权限 = 起始权限 & (~umask)
       ~ 000 000 010111 111 101& 
起始权限  110 110 110   (666)最终权限  110 110 100 -> 664

要永久更改umask,可以在 `~/.bashrc` 或 `/etc/profile` 中添加 `umask` 配置。这使得创建的文件和目录能自动获得合适的权限,更加安全和便捷。

3.3 粘滞位

在Linux中,“粘滞位”(Sticky Bit)是一种文件权限设置,用于目录或文件上,控制用户对文件或目录内容的删除权限。通常设置粘滞位主要用于目录,使目录下的文件或子目录只能被文件的所有者、目录的所有者或者超级用户删除或重命名,其他用户即使有写权限,也无法删除或修改这些文件。
(1)常见的使用场景包括:
- 共享目录:例如`/tmp`目录,允许所有用户进行读写操作,但防止非所有者删除其他用户的文件。

(2)设置方法
可以使用`chmod`命令设置粘滞位:

添加粘滞位
chmod +t 目录名移除粘滞位
chmod -t 目录名

(3)权限表示
在执行`ls -l`查看文件权限时,粘滞位会以“`t`”显示在目录的执行权限位置上。例如:

这里的`-rw-rw-r-T`中的 T 表示粘滞位已经设置。

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删

4.总结

- 目录的可执行权限是表示你可否在目录下执行命令。
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
- 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

http://www.ppmy.cn/devtools/152978.html

相关文章

arcgis for js只显示范围内的天地图,其余部分透明

效果 只显示范围内的天地图,其余部分透明化 实现 复制后直接运行即可 <!DOCTYPE html> <html lang"zn"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><met…

Spring Retry实现接口或者方法重试调用

背景 调用外部系统或者调用一些方法失败的时候&#xff0c;我们需要有个重试机制&#xff0c;保证代码的健壮性。如果直接用while和变量重试&#xff0c;比较繁琐 使用while实现重试&#xff0c;比较繁琐 public class RetryExample {public static void main(String[] args…

我谈概率论与数理统计的知识体系

学习概率统计二十多年后&#xff0c;在廖老师的指导下&#xff0c;终于明白各章之间的关系。本来就是一条线两个分支&#xff0c;脉络很清晰。 分支一&#xff1a;从随机现象到样本空间到随机事件再到概率。 从随机事件到随机变量&#xff1a;为了进行定量的数学处理&#xf…

epoll 的边缘触发(Edge Triggered)与水平触发(Level Triggered)

文章目录 epoll的边缘触发&#xff08;Edge Triggered&#xff09;与水平触发&#xff08;Level Triggered&#xff09;边缘触发&#xff08;Edge Triggered, ET&#xff09;特点适用场景示例 水平触发&#xff08;Level Triggered, LT&#xff09;特点适用场景示例 边缘触发 v…

深入理解 Spring 的 Lazy Loading:原理、实现与应用场景

延迟加载&#xff08;Lazy Loading&#xff09;是 Spring 容器管理 Bean 的一种策略&#xff0c;指 只有在需要时&#xff08;调用 getBean() 方法获取 Bean 时&#xff09;才会实例化该 Bean。这是 Spring 提供的一种优化机制&#xff0c;用于提高启动效率和降低资源占用。 1.…

wireshark工具简介

目录 1 wireshark介绍 2 wireshark抓包流程 2.1 选择网卡 2.2 停止抓包 2.3 保存数据 3 wireshark过滤器设置 3.1 显示过滤器的设置 3.2 抓包过滤器 4 wireshark的封包列表与封包详情 4.1 封包列表 4.2 封包详情 参考文献 1 wireshark介绍 wireshark是非常流行的网络…

HTTPS的加密原理

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是一个安全的 HTTP 协议&#xff0c;结合了 SSL/TLS 协议来提供数据加密、身份验证和数据完整性保护。其核心加密原理可以分为以下几个步骤&#xff1a; 对称加密和非对称加密 HTTPS 使用了对称加密和非对称…

Java学习,List移动元素

Java实现List中元素的循环移动&#xff08;即将列表中的元素向右或向左移动指定数量的位置&#xff09;&#xff0c;可以使用多种方法。 List元素移动指定位置&#xff1a; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class…