目录
引言
在Linux系统中,权限管理是保障系统安全和数据完整性的重要机制。合理设置文件和目录的权限,能有效防止非法访问和误操作。本文将详细介绍Linux权限管理相关知识,帮助大家深入理解并熟练运用。
一、Linux用户类型
Linux系统中有两种主要用户类型:
- 超级用户(root)(为所欲为):拥有至高无上的权限,可以在系统中做任何事情,不受限制。其命令提示符为"#" 。例如,root用户可以随意修改系统配置文件、删除重要系统目录等操作。但也正因如此,使用root用户操作时需格外谨慎,一旦误操作可能导致系统故障。
**- 普通用户:**权限有限,只能在允许的范围内进行操作,命令提示符为"$" 。普通用户可以对自己的文件和目录进行操作,如创建、删除、修改等,但对系统关键部分则没有权限访问。
切换用户使用 su [用户名] 命令 。从root切换到普通用户直接 su 用户名 ;普通用户切换到root用户,使用 su root (root可省略),此时需输入root用户密码。
root变为普通用户直接su[用户名]
二、文件访问者分类
文件访问者分为三类:
-
文件所有者(u - User):创建文件的用户,对文件拥有较高控制权。比如用户创建了一个文档,该用户就是文件所有者,可决定文件是否允许他人读取、修改等。
-
文件所有者所在组的用户(g - Group):同一用户组内的成员,在权限设置下可对文件进行相应操作。例如一个项目组的成员在同一用户组,组内成员对项目相关文件根据权限设置有不同操作权限。
-
其他用户(o - Others):除上述两类之外的用户,通常权限相对较低。
三、文件类型和访问权限
(一)文件类型
**- d:文件夹,用于组织和存储文件及其他文件夹。
-:普通文件,如文本文件、二进制程序文件等。**
l:软链接,类似Windows的快捷方式,指向其他文件或目录。
b:块设备文件,像硬盘、光驱等存储设备。
p:管道文件,用于进程间通信。
c:字符设备文件,如屏幕等串口设备。
s:套接口文件,用于网络通信。
(二)基本权限
- 读(r/4):对文件可读取内容;对目录可浏览信息。比如对一个文本文件有读权限,就能查看文件内容;对目录有读权限,可使用 ls 命令查看目录下文件列表。
- 写(w/2):对文件可修改内容;对目录可删除、移动目录内文件。例如对文件有写权限,就能编辑文件;对目录有写权限,可删除目录内文件。
- 执行(x/1):对文件可执行;对目录可进入。可执行文件(如脚本文件、二进制程序)有执行权限才能运行;对目录有执行权限才能使用 cd 命令进入。
- "-":表示不具有该项权限。
权限表示形式有字符表示和八进制数值表示 。字符表示如 rwx 表示可读可写可执行, r-- 表示只读等;八进制数值表示中, r 对应4, w 对应2, x 对应1 ,组合起来如 rwx 是7(4 + 2 + 1 ), rw- 是6(4 + 2 )等。
四、文件访问权限设置方法
(一)chmod命令
功能是**设置文件的访问权限,**格式为 chmod [参数] 权限 文件名 。
-
常用选项: R 可递归修改目录文件权限。
-
权限值格式:
-
用户表示符+/-/=权限字符 : + 增加权限, - 取消权限, = 赋予权限。例如chmod u+w /home/abc.txt 给文件所有者增加写权限; chmod o-x /home/abc.txt 取消其他用户的执行权限。

- 三位8进制数字 :如 chmod 664 /home/abc.txt ,第一个6表示所有者权限(4读 + 2写 ),第二个6表示所属组权限(4读 + 2写 ),4表示其他用户权限(4读 ) 。
注意:只有文件所有者和root可以改变文件权限。
(二)chown命令
功能是修改文件的拥有者,格式为 chown [参数] 用户名 文件名 。例如 chown user1 f1 将文件 f1 的所有者改为 user1 ; chown -R user1 filegroup1 递归修改 filegroup1 目录及其下所有文件的所有者为 user1 。
(三)chgrp命令
用于修改文件或目录的所属组,格式是 chgrp [参数] 用户组名 文件名 。常用选项 -R 递归修改。比如 chgrp users /abc/f2 将文件 /abc/f2 的所属组改为 users 。
(四)umask命令
用于查看或修改文件掩码。新建文件默认权限是0666,新建目录默认权限是0777,但实际创建的文件和目录权限会受umask影响,实际权限是 mask & ~umask 。格式为 umask 权限值 ,如 umask 755 设置掩码, umask 可查看当前掩码 。超级用户默认掩码值为0022,普通用户默认为0002 。
(五)file指令
功能是辨识文件类型,语法为 file [选项] 文件或目录... 。

常用选项 -c 详细显示指令执行过程, -z 尝试去解读压缩文件内容。
(六)使用sudo分配权限
- 修改/etc/sudoers文件分配文件 :先使用 chmod 740 /etc/sudoers 修改文件权限,再用 vi /etc/sudoers 编辑文件。格式为 接受权限的用户登陆的主机 = (执行命令的用户) 命令 。

- 使用sudo调用授权的命令 :格式为 sudo -u 用户名 命令 ,例如 ++** sudo -u root /usr/sbin/useradd u2 以root身份执行添加用户 u2 的命令。**++
五、粘滞位
当一个目录被设置为"粘滞位"(用chmod +t ) ,则该目录下的文件只能由:
-
超级管理员删除;
-
该目录的所有者删除;
-
该文件的所有者删除。

这解决了用户对目录有写权限就可随意删除目录内文件(即使无文件写权限)的问题。例如在 /home 目录设置粘滞位后,普通用户就不能随意删除其他用户在该目录下的文件。
六、目录的权限
(一)可执行权限
目录没有可执行权限,就无法使用 cd 命令进入目录。
(二)可读权限
若目录没有可读权限,无法用 ls 命令查看目录中的文件内容。
(三)可写权限
若目录没有可写权限,无法在目录中创建文件,也无法删除目录中的文件。
七、总结
Linux权限管理看似复杂,但只要理解用户类型、文件访问者分类、文件类型和权限设置方法等核心要点,就能灵活运用。在实际操作中,要注意权限设置的合理性,避免因权限设置不当导致安全问题或操作受限。尤其是涉及系统关键文件和目录时,更要谨慎操作,必要时做好备份,确保系统稳定和数据安全。
希望通过本文,大家能对Linux权限管理有更深入的认识,在日常使用和工作中能更好地管理系统资源。