Linux权限管理:从入门到实践

目录

引言

​编辑一、Linux用户类型

二、文件访问者分类

三、文件类型和访问权限

(一)文件类型

(二)基本权限

四、文件访问权限设置方法

(一)chmod命令

(二)chown命令

(三)chgrp命令​编辑

(四)umask命令

(五)file指令

(六)使用sudo分配权限

五、粘滞位

六、目录的权限

(一)可执行权限

(二)可读权限

(三)可写权限

七、总结


引言

在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分配权限

  1. 修改/etc/sudoers文件分配文件 :先使用 chmod 740 /etc/sudoers 修改文件权限,再用 vi /etc/sudoers 编辑文件。格式为 接受权限的用户登陆的主机 = (执行命令的用户) 命令 。
  1. 使用sudo调用授权的命令 :格式为 sudo -u 用户名 命令 ,例如 ++** sudo -u root /usr/sbin/useradd u2 以root身份执行添加用户 u2 的命令。**++

五、粘滞位

当一个目录被设置为"粘滞位"(用chmod +t ) ,则该目录下的文件只能由:

  • 超级管理员删除;

  • 该目录的所有者删除;

  • 该文件的所有者删除。

这解决了用户对目录有写权限就可随意删除目录内文件(即使无文件写权限)的问题。例如在 /home 目录设置粘滞位后,普通用户就不能随意删除其他用户在该目录下的文件。

六、目录的权限

(一)可执行权限

目录没有可执行权限,就无法使用 cd 命令进入目录。

(二)可读权限

若目录没有可读权限,无法用 ls 命令查看目录中的文件内容。

(三)可写权限

若目录没有可写权限,无法在目录中创建文件,也无法删除目录中的文件。

七、总结

Linux权限管理看似复杂,但只要理解用户类型、文件访问者分类、文件类型和权限设置方法等核心要点,就能灵活运用。在实际操作中,要注意权限设置的合理性,避免因权限设置不当导致安全问题或操作受限。尤其是涉及系统关键文件和目录时,更要谨慎操作,必要时做好备份,确保系统稳定和数据安全。

希望通过本文,大家能对Linux权限管理有更深入的认识,在日常使用和工作中能更好地管理系统资源。

相关推荐
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
荣--2 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森2 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜2 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10153 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB3 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao3 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3105 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode5 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏