做网站一直不知道做什么网站国家企业公示信息系统官网

文章目录
- 前言
 - ‼️一、Linux权限的概念
 - ‼️二、Linux权限管理
 - ❕2.1 文件访问者的分类(人)
 - ❕2.2 文件类型和访问权限(事物属性)
 - ✔️1. 文件类型
 - ✔️2. 基本权限
 - ✔️3. 权限值的表示方法
 
- ❕2.3 文件访问权限的相关设置方法
 - ✔️1. `chmod` 命令
 - ✔️2. `chown` 命令
 - ✔️3. `chgrp` 命令
 
- ‼️三、其他权限问题
 - ❕3.1 问题一:为什么普通文件是664,目录文件是775?
 - ✔️1. umask 的作用与工作原理
 - ✔️2. umask 的计算规则
 - ✔️3. 查看和设置 umask
 
- ❕3.2 问题二:目录的权限代表什么?
 - ✔️1. 读取权限(`r` - Read)
 - ✔️2. 写入权限(`w` - Write)
 - ✔️3. 执行权限(`x` - Execute)
 
- ❕3.3 问题三:想要建立共享文件,但不想让其他人删除怎么办?
 - ✔️1. 粘滞位的作用
 - ✔️2. 粘滞位的表示
 - ✔️3. 设置和移除粘滞位
 
- 结语
 
前言
在现代操作系统中,权限管理是保障安全与系统稳定运行的关键环节。Linux作为一个广泛应用的开源操作系统,其权限体系以灵活性、可扩展性和严谨性著称。无论是个人用户还是企业环境,理解并掌握Linux权限管理,既是保障信息安全的基础,也能大幅提升系统管理效率。本文将带你深入探索Linux权限体系的核心概念、常见操作以及最佳实践。
‼️一、Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户
- 超级用户:可以再linux系统下做任何事情,不受限制
 - 普通用户:在linux下做有限的事情。
 - 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
 
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。退出用户使用 exit 或者 ctrl + d。
‼️二、Linux权限管理
❕2.1 文件访问者的分类(人)
-  
文件和文件目录的所有者:u—User(中国平民 法律问题)
 -  
文件和文件目录的所有者所在的组的用户:g—Group(不多说)
 -  
其它用户:o—Others (外国人)
 
❕2.2 文件类型和访问权限(事物属性)

✔️1. 文件类型
Linux 文件类型由文件的第一个字符标识,当使用命令 ls -l 查看文件列表时,可以看到类似如下的输出:
-rwxr-xr--
drwxr-xr-x
lrwxrwxrwx
 
第一个字符表示文件的类型,可能的取值如下:
| 字符 | 文件类型 | 
|---|---|
- | 普通文件 (Regular File) | 
d | 目录 (Directory) | 
l | 符号链接 (Symbolic Link) | 
b | 块设备文件 (Block Device) | 
c | 字符设备文件 (Character Device) | 
p | 管道 (Pipe) | 
s | 套接字 (Socket) | 
✔️2. 基本权限
Linux 文件权限分为三组:
- 所有者 (Owner):文件的创建者。
 - 所属组 (Group):同组用户。
 - 其他人 (Others):非所有者或非所属组的用户。
 
权限有三种:
| 权限 | 描述 | 值 | 
|---|---|---|
r | 读 (Read) | 4 | 
w | 写 (Write) | 2 | 
x | 执行 (Execute) | 1 | 
✔️3. 权限值的表示方法
a. 符号表示法
用字母表示文件权限,例如:-rw-r--r--
| 字符 | 含义 | 
|---|---|
r | 读权限 | 
w | 写权限 | 
x | 执行权限 | 
- | 没有该权限 | 
例子:
-rw-r--r--表示普通文件,所有者有读写权限,组用户和其他用户只有读权限。
b. 数值表示法
每种权限的值相加表示最终权限。例如:
| 权限 | 数值 | 二进制 | 
|---|---|---|
--- | 0 | 000 | 
--x | 1 | 001 | 
-w- | 2 | 010 | 
-wx | 3 | 011 | 
r-- | 4 | 100 | 
r-x | 5 | 101 | 
rw- | 6 | 110 | 
rwx | 7 | 111 | 
权限分为三组(Owner, Group, Others),组合成三位数字。例如:
-rwxr-xr--的数值表示为754。
❕2.3 文件访问权限的相关设置方法
✔️1. chmod 命令
 
chmod (Change Mode) 是用于修改 Linux 文件或目录权限的命令。权限可以用符号或八进制数表示。
基本语法
chmod [选项] 模式 文件名
 
- 模式:可以是符号表示法 (
u+r,g-w) 或数字表示法 (755)。 - 文件名:要更改权限的目标文件或目录。
 
a. 符号表示法
符号表示法适合逐步修改权限:
chmod [ugoa][+-=][rwx] 文件名
 
| 符号 | 作用 | 
|---|---|
u | 文件所有者 (user) | 
g | 文件所属组 (group) | 
o | 其他人 (others) | 
a | 所有用户 (all) | 
+ | 添加权限 | 
- | 移除权限 | 
= | 直接设定权限 | 
示例:
-  
给文件所有者添加写权限:
chmod u+w filename -  
删除其他人的执行权限:
chmod o-x filename -  
所有用户设定只读权限:
chmod a=r filename 
b. 数字表示法:
数字表示法直接设定文件权限值(例如 644,755)。
| 权限 | 数值 | 二进制 | 
|---|---|---|
--- | 0 | 000 | 
--x | 1 | 001 | 
-w- | 2 | 010 | 
-wx | 3 | 011 | 
r-- | 4 | 100 | 
r-x | 5 | 101 | 
rw- | 6 | 110 | 
rwx | 7 | 111 | 
-  
设置文件权限为
rwxr-xr--:chmod 754 filename -  
设置目录权限为
rwx------:chmod 700 directory_name 
常用选项
| 选项 | 描述 | 
|---|---|
-R | 递归修改权限,适用于目录及其所有子目录和文件。 | 
-v | 显示每个文件权限修改的详细信息。 | 
-c | 仅显示被更改的文件信息。 | 
--reference=ref_file | 将 ref_file 的权限应用到目标文件。 | 
示例:
-  
递归修改目录及其内容的权限:
chmod -R 755 /path/to/directory -  
使用参考文件权限:
chmod --reference=ref_file target_file 
✔️2. chown 命令
 
chown(Change Ownership)用于更改文件或目录的所有者和/或所属组。
语法
chown [选项] [所有者][:组] 文件名
 
- 所有者:文件的新所有者用户。
 - 组:文件的新所属组。如果不指定所有者,只修改组时,可以用 
:开头。 - 文件名:要修改的目标文件或目录。
 
常用选项
| 选项 | 描述 | 
|---|---|
-R | 递归更改目录及其内容的所有者和组。 | 
-v | 显示更改的详细信息。 | 
--reference=ref_file | 使用参考文件的所有者和组进行设置。 | 
示例
-  
更改文件所有者:
chown user1 filename将
filename的所有者改为user1。 -  
更改所有者和组:
chown user1:group1 filename将
filename的所有者改为user1,所属组改为group1。 -  
仅更改组:
chown :group1 filename -  
递归更改目录和文件的所有者:
chown -R user1:group1 /path/to/directory -  
参考其他文件的所有者和组:
chown --reference=ref_file target_file 
✔️3. chgrp 命令
 
chgrp(Change Group)用于更改文件或目录的所属组。
语法
chgrp [选项] [组] 文件名
 
- 组:文件的新所属组。
 - 文件名:要修改的目标文件或目录。
 
常用选项
| 选项 | 描述 | 
|---|---|
-R | 递归更改目录及其内容的所属组。 | 
-v | 显示更改的详细信息。 | 
--reference=ref_file | 使用参考文件的组进行设置。 | 
示例
-  
更改文件的所属组:
chgrp group1 filename将
filename的所属组改为group1。 -  
递归更改目录和文件的所属组:
chgrp -R group1 /path/to/directory -  
参考其他文件的组:
chgrp --reference=ref_file target_file 
‼️三、其他权限问题

❕3.1 问题一:为什么普通文件是664,目录文件是775?
实际上:
-  
创建文件时的默认权限是
666(没有执行权限)。 -  
创建目录时的默认权限是
777(包括执行权限)。 
但是:实际权限 = 默认权限 - umask
这里我们引入一个叫做umask的东西。
✔️1. umask 的作用与工作原理
umask(User File Creation Mask)是一个在 Linux 操作系统中用于控制文件和目录默认权限的命令。它定义了文件和目录创建时的权限掩码,从而决定新创建的文件或目录的最终权限。
✔️2. umask 的计算规则
实际权限 = 默认权限 - umask
注意:这里的 - 并不是简单的减,而是,默认权限 & (~umask)。
例如:
- 如果 
umask = 022:- 文件默认权限 = 
666 - 022 = 644(rw-r–r–) - 目录默认权限 = 
777 - 022 = 755(rwxr-xr-x) 
 - 文件默认权限 = 
 - 如果 
umask = 027:- 文件默认权限 = 
666 - 027 = 640(rw-r-----) - 目录默认权限 = 
777 - 027 = 750(rwxr-x–) 
 - 文件默认权限 = 
 
示例:
更改 umask: 修改为 077:
umask 077
touch test3.txt
mkdir dir3
 

✔️3. 查看和设置 umask
- 查看当前 umask 值
 
运行命令:
umask
 
这将返回一个四位的八进制数字(前三位是有效的)。
例如:
$ umask
0022
 
- 临时设置 umask
 
在当前会话中临时更改:
umask 0027
 
此更改仅适用于当前 shell 会话。
注意事项
- umask 不会增加权限:
umask只能限制权限,而不能授予额外权限。例如,设置umask为0000允许最大权限,但不能为文件自动添加执行权限。 
❕3.2 问题二:目录的权限代表什么?
✔️1. 读取权限(r - Read)
 
- 作用: 
- 允许查看目录中的文件名列表。
 - 如果没有读取权限,用户即使知道目录的路径,也无法列出其中的内容(如使用 
ls命令)。 
 - 效果: 
- 如果对目录有读取权限,你可以看到该目录内的文件和子目录的名称,但不能访问其内容(如果缺少执行权限)。
 
 
✔️2. 写入权限(w - Write)
 
- 作用: 
- 允许在目录中创建、删除或重命名文件。
 - 如果没有写入权限,你无法在该目录中添加新文件、删除文件或修改目录结构。
 
 - 注意: 
- 写入权限还受执行权限的限制(即需要同时有执行权限才能实际修改目录内容)。
 
 
✔️3. 执行权限(x - Execute)
 
- 作用: 
- 允许进入该目录,也就是说,用户可以切换到该目录(使用 
cd命令)。 - 允许访问目录中的具体文件(前提是对文件本身有合适的权限)。
 
 - 允许进入该目录,也就是说,用户可以切换到该目录(使用 
 - 效果: 
- 如果对目录没有执行权限,即使有读取权限,你也无法查看目录的内容。
 - 执行权限对目录至关重要,因为它决定了目录是否可用作工作路径。
 
 
❕3.3 问题三:想要建立共享文件,但不想让其他人删除怎么办?
解决方案:设置粘滞位
粘滞位(Sticky Bit)是一种特殊的权限位,用于保护目录下的文件和子目录,使得只有文件的所有者或者目录的所有者才能删除或修改该文件,即使其他用户对目录有写权限。
✔️1. 粘滞位的作用
- 功能:当粘滞位设置在目录上时,只有以下用户可以删除或重命名该目录中的文件或子目录: 
- 文件所有者。
 - 目录所有者。
 - 超级用户(root)。
 
 - 应用场景:最常见的例子是 
/tmp目录。该目录通常对所有用户开放写入权限,但由于设置了粘滞位,用户只能删除或修改自己的文件,而不能影响其他用户的文件。 
✔️2. 粘滞位的表示
-  
符号模式:在文件或目录权限的符号表示中,粘滞位通常显示为目录权限的最后一位
t或T。- 如果目录同时有执行权限,粘滞位显示为 
t。 - 如果目录没有执行权限,粘滞位显示为 
T。 例如: 
drwxrwxrwt 10 root root 4096 Nov 19 /tmp/tmp目录的权限显示t,表示粘滞位已启用,且目录具有执行权限。 - 如果目录同时有执行权限,粘滞位显示为 
 -  
八进制模式:粘滞位对应的八进制值是
1,可以通过在权限数字前加上1设置粘滞位。例如:1755:设置了粘滞位,并且目录权限为rwxr-xr-x。1777:设置了粘滞位,并且目录权限为rwxrwxrwx(例如/tmp目录)。
 
✔️3. 设置和移除粘滞位
设置粘滞位
使用 chmod 命令为目录添加粘滞位:
chmod +t directory_name  # 使用符号模式添加粘滞位。
chmod 1777 directory_name  # 使用八进制模式设置权限并添加粘滞位。
 
移除粘滞位
chmod -t directory_name  # 使用符号模式移除粘滞位。
chmod 0777 directory_name  # 使用八进制模式移除粘滞位。
 
结语
Linux权限体系是一个兼具严谨与灵活的设计,其核心在于平衡安全性与实用性。通过深入理解权限管理的原理和操作,你不仅能够应对常见的安全威胁,还能更高效地管理系统资源。希望本文能为你的学习和实践提供实用参考,让你在Linux系统的使用中更加自信、游刃有余。
 
今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,17的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是17前进的动力!

