权限的概念
在 Linux 系统里,权限管理是系统安全的关键环节。权限管理的核心目的是明确不同用户对文件和目录的操作许可范围,以此来保障系统资源的安全与合理使用。权限管理涉及三种不同的用户角色和三种基本的操作权限。
用户角色
- 所有者(owner):文件或目录的创建者,通常对其拥有最高的操作权限。
- 用户组(group):由一组用户构成,文件或目录可以被分配给特定的用户组,组内成员拥有相同的权限。
- 其他用户(others):除所有者和所属用户组成员之外的所有用户。
基本操作权限
- 读权限(r):对于文件,读权限允许查看文件内容;对于目录,读权限允许列出目录中的文件和子目录。
- 写权限(w):对于文件,写权限允许修改文件内容;对于目录,写权限允许在目录中创建、删除和重命名文件或子目录。
- 执行权限(x):对于文件,执行权限允许将文件作为程序执行;对于目录,执行权限允许进入该目录。
权限的表示
权限的表示方式主要有字符表示法和数字表示法两种。
字符表示法
当使用ls -l
命令查看文件或目录的详细信息时,会以字符形式显示权限。例如:
plaintext
-rw-r--r-- 1 user group 123 Apr 28 10:00 example.txt
- 第一个字符表示文件类型,
-
表示普通文件,d
表示目录,l
表示符号链接等。 - 接下来的三个字符一组,分别表示所有者、用户组和其他用户的权限。如
rw-
表示有读和写权限,但没有执行权限;r--
表示只有读权限。
数字表示法
每个权限都有对应的数字值,读权限对应 4,写权限对应 2,执行权限对应 1。将这些数字相加就能得到权限组合的数值。示例如下:
rwx
对应 7(4 + 2 + 1)rw-
对应 6(4 + 2)r-x
对应 5(4 + 1)r--
对应 4-w-
对应 2--x
对应 1
设置权限
在 Linux 中,可使用chmod
命令来修改文件或目录的权限,以下为你介绍两种常见的使用方式。
数字方式
通过指定数字组合来一次性设置所有者、用户组和其他用户的权限。例如,若要将文件example.txt
的权限设置为所有者有读、写、执行权限(7),用户组有读和写权限(6),其他用户只有读权限(4),可以使用以下命令:
chmod 764 example.txt
符号方式
使用u
(所有者)、g
(用户组)、o
(其他用户)、a
(所有用户)来指定用户类型,使用+
(添加权限)、-
(移除权限)、=
(设置权限)来修改权限。示例如下:
# 给文件 example.txt 的所有者添加执行权限
chmod u+x example.txt
# 移除文件 example.txt 的其他用户的写权限
chmod o-w example.txt
除了基本的读、写、执行权限,Linux 还有一些特殊权限,如 SUID、SGID 和 Sticky Bit,设置这些特殊权限也可使用chmod
命令结合相应的数字或符号来完成。
若要修改文件或目录的所有者和用户组,可使用chown
命令,示例如下:
# 将文件 example.txt 的所有者改为 newuser,用户组改为 newgroup
chown newuser:newgroup example.txt