目录
- 传送门
- 前言
- 一、权限管理概念
- 二、权限管理实战
- 1. Linux文件权限模型
- 1.1 文件的三种基本权限
- 1.2 权限的三类主体
- 2. 查看文件权限
- 3. 修改文件权限
- 3.1 使用符号方式修改权限
- 3.2 使用数字方式修改权限
- 4. 特殊权限
- 4.1 SUID(Set User ID)
- 4.2 SGID(Set Group ID)
- 4.3 Sticky Bit
- 5. 用户与组管理
- 5.1 创建和管理用户与组
- 5.2 修改文件所有者和所属组
- 6. 权限的继承和访问控制
- 7. 总结
传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
前言
不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。
以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇
一、权限管理概念
里面的6的单位是字节,6个字节,目录大小默认是4096字节
二、权限管理实战
Linux的权限管理系统是确保系统安全和资源访问控制的核心部分。它允许系统管理员管理用户、组、以及他们对文件和目录的访问权限。理解和配置这些权限对于保护数据、确保正确的访问控制非常重要。以下是关于 Linux 权限管理 的详细介绍:
1. Linux文件权限模型
在Linux中,每个文件或目录都有与之关联的权限,控制哪些用户或用户组可以读取、写入或执行该文件。Linux的文件权限模型基于三类权限和三类用户。
1.1 文件的三种基本权限
- 读(r):允许查看文件内容或列出目录内容。
- 写(w):允许修改文件内容或在目录中添加、删除文件。
- 执行(x):允许执行文件(对于可执行文件)或进入目录。
1.2 权限的三类主体
权限被分配给以下三类主体:
- 所有者(User/Owner):文件的拥有者。
- 所属组(Group):文件属于的用户组。
- 其他用户(Others):文件所属组和所有者之外的所有其他用户。
每个主体(所有者、组、其他用户)可以分别对文件执行读、写、执行操作。
2. 查看文件权限
使用 ls -l
命令可以查看文件的权限。例如:
ls -l file.txt
输出示例:
-rw-r--r-- 1 alice staff 4096 Dec 17 10:20 file.txt
解析:
-rw-r--r--
:文件权限。-
:文件类型(-
表示普通文件,d
表示目录)。rw-
:所有者(alice
)有读、写权限。r--
:组(staff
)有读权限。r--
:其他用户有读权限。
1
:硬链接的数量。alice
:文件的所有者。staff
:文件的用户组。4096
:文件大小。Dec 17 10:20
:文件的修改时间。
3. 修改文件权限
Linux提供了 chmod
命令用于修改文件的权限,支持两种方式:符号方式和数字方式。
3.1 使用符号方式修改权限
使用符号方式时,可以通过 r
(读)、w
(写)、x
(执行)来表示权限,使用 +
(添加权限)、-
(去除权限)和 =
(指定权限)来修改权限。
例如:
- 给文件所有者添加写权限:
chmod u+w file.txt
- 给文件所属组去掉执行权限:
chmod g-x file.txt
- 只给所有者设置读权限:
chmod u=r file.txt
- 给所有用户添加执行权限:
chmod a+x file.txt
3.2 使用数字方式修改权限
数字方式使用三个数字表示文件的权限,每个数字表示不同的主体(所有者、组、其他用户)权限的组合:
r
(读)= 4w
(写)= 2x
(执行)= 1-
(无权限)= 0
每个数字代表所有者、组、其他用户的权限。例如:
7
(读+写+执行)= 4 + 2 + 16
(读+写)= 4 + 25
(读+执行)= 4 + 14
(读)= 4
例如:
- 给文件
file.txt
设置所有者具有读、写、执行权限,组具有读、执行权限,其他用户只有读权限:chmod 755 file.txt
- 给文件
file.txt
设置所有者具有读、写权限,组和其他用户没有权限:chmod 600 file.txt
4. 特殊权限
除了基本的权限(读、写、执行)外,Linux还有三种特殊权限,分别是 SUID、SGID 和 Sticky Bit。
4.1 SUID(Set User ID)
SUID 权限允许程序在执行时以文件所有者的身份运行,而不是执行程序的用户的身份。SUID 主要用于可执行文件。
设置 SUID 权限:
chmod u+s <文件名>
查看 SUID 权限:
ls -l <文件名>
如果文件设置了 SUID,权限字段会显示为:
-rwsr-xr-x 1 root root 12345 Dec 17 10:00 myprogram
其中,rws
中的 s
表示 SUID 权限。
4.2 SGID(Set Group ID)
SGID 权限使得程序在执行时,以文件所属组的身份运行,或者对于目录,文件会继承目录的组。
设置 SGID 权限:
chmod g+s <文件名或目录名>
查看 SGID 权限:
ls -l <文件名>
如果文件设置了 SGID,权限字段会显示为:
-rwxr-sr-x 1 root root 12345 Dec 17 10:00 myprogram
对于目录,SGID 设置后,目录中的新文件会继承该目录的组。
4.3 Sticky Bit
Sticky Bit 是一种特殊权限,通常用于目录。它确保只有文件的所有者、目录的所有者和超级用户可以删除或重命名目录中的文件。
设置 Sticky Bit 权限:
chmod +t <目录名>
查看 Sticky Bit 设置:
ls -ld <目录名>
如果目录设置了 Sticky Bit,权限字段会显示为:
drwxrwxrwt 7 root root 4096 Dec 17 10:00 /tmp
5. 用户与组管理
5.1 创建和管理用户与组
-
创建用户:
sudo useradd <用户名>
-
创建组:
sudo groupadd <组名>
-
删除用户:
sudo userdel <用户名>
-
删除组:
sudo groupdel <组名>
5.2 修改文件所有者和所属组
-
修改文件的所有者:
sudo chown <新所有者> <文件名>
-
修改文件的所属组:
sudo chgrp <新组> <文件名>
-
同时修改文件的所有者和所属组:
sudo chown <新所有者>:<新组> <文件名>
例如:
sudo chown john:admin file.txt
6. 权限的继承和访问控制
- 默认权限:新创建的文件和目录通常会继承父目录的权限,并根据文件类型设置适当的权限。
- ACL(Access Control Lists):ACL 是一种扩展的权限控制机制,允许细粒度地设置文件和目录的访问控制。
7. 总结
Linux的权限管理系统非常强大,可以通过基本的文件权限、用户、组、特殊权限以及 ACL 控制来确保系统的安全性。管理员可以灵活地管理哪些用户可以读取、修改和执行文件,从而保护敏感数据,防止未授权访问。理解和正确配置权限是维护 Linux 系统安全的核心技能。