当前位置: 首页 > news >正文

Linux权限管理详解

Linux权限管理系统

Linux作为一个多用户操作系统,其权限管理系统是保障系统安全的重要组成部分。通过合理设置文件和目录的权限,可以有效控制用户对系统资源的访问。

一、基本权限概念

Linux系统中的权限分为三类:

  1. 读权限(r):允许读取文件内容或列出目录内容
  2. 写权限(w):允许修改文件内容或在目录中创建、删除文件
  3. 执行权限(x):允许执行文件或进入目录

这些权限分别应用于三种用户类型:

  1. 文件所有者(u):创建文件的用户
  2. 用户组(g):与文件关联的用户组
  3. 其他用户(o):既不是所有者也不在用户组中的用户

二、查看文件权限

使用ls -l命令可以查看文件的详细信息,包括权限:

$ ls -l

-rwxr-xr-- 1 user group 4096 Jan 1 10:00 

file.txt

权限部分解析:

  • 第一个字符:文件类型(-表示普通文件,d表示目录,l表示符号链接等)
  • 接下来的9个字符分为3组,每组3个字符:
    • 第1-3位:所有者权限(rwx)
    • 第4-6位:用户组权限(r-x)
    • 第7-9位:其他用户权限(r--)

三、权限的数字表示

权限也可以用数字表示:

  • r (读) = 4
  • w (写) = 2
  • x (执行) = 1

通过将每组权限的数字相加,可以得到一个三位数:

  • 例如:rwxr-xr-- = 754
    • 所有者:rwx = 4+2+1 = 7
    • 用户组:r-x = 4+0+1 = 5
    • 其他用户:r-- = 4+0+0 = 4

四、修改文件权限

1. chmod命令

chmod命令用于修改文件或目录的权限。有两种使用方式:

符号模式

chmod [用户类型][操作符][权限] 文件名

  • 用户类型:u(所有者)、g(用户组)、o(其他用户)、a(所有用户)
  • 操作符:+(添加权限)、-(移除权限)、=(设置权限)
  • 权限:r(读)、w(写)、x(执行)

例如:

chmod u+x file.txt  # 给所有者添加执行权限
chmod go-w file.txt  # 移除用户组和其他用户的写权限
chmod a=r file.txt  # 设置所有用户只有读权限

数字模式

chmod 权限数字 文件名

例如:

chmod 755 file.txt  # 设置权限为rwxr-xr-x

chmod 644 file.txt  # 设置权限为rw-r--r--

2. chown命令

chown命令用于修改文件的所有者和用户组:

chown 用户[:组] 文件名

例如:

chown user1 file.txt  # 修改所有者为user1

chown user1:group1 file.txt  # 修改所有者为

user1,用户组为group1

3. chgrp命令

chgrp命令用于修改文件的用户组:

chgrp 组名 文件名

例如:

chgrp group1 file.txt  # 修改用户组为group1

五、特殊权限

除了基本的rwx权限外,Linux还有三种特殊权限:

  1. SUID (Set User ID):当文件被执行时,进程的有效用户ID会被设置为文件所有者的ID

    • 数字表示:4000
    • 符号表示:s (替代所有者的x位置)
  2. SGID (Set Group ID):当文件被执行时,进程的有效用户组ID会被设置为文件用户组的ID

    • 数字表示:2000
    • 符号表示:s (替代用户组的x位置)
  3. Sticky Bit:主要用于目录,只有文件的所有者、目录的所有者或root用户才能删除或重命名目录中的文件

    • 数字表示:1000
    • 符号表示:t (替代其他用户的x位置)

设置特殊权限的例子:

chmod u+s file  # 设置SUID

chmod g+s directory  # 设置SGID

chmod +t directory  # 设置Sticky Bit

chmod 4755 file  # 设置SUID和rwxr-xr-x权限

六、默认权限与umask

新创建文件和目录的默认权限由系统的umask值决定:

  • 文件的最大默认权限是666 (rw-rw-rw-)
  • 目录的最大默认权限是777 (rwxrwxrwx)
  • 实际默认权限 = 最大默认权限 - umask值

查看当前umask值:

umask

设置umask值:

umask 022  # 设置umask为022

常见的umask值:

  • 022:文件默认权限为644 (rw-r--r--),目录默认权限为755 (rwxr-xr-x)
  • 002:文件默认权限为664 (rw-rw-r--),目录默认权限为775 (rwxrwxr-x)

七、访问控制列表(ACL)

当基本权限不足以满足需求时,可以使用访问控制列表(ACL)提供更精细的权限控制:

查看文件的ACL:

getfacl 文件名

设置文件的ACL:

setfacl -m u:用户名:权限 文件名  # 为指定用户

设置权限

setfacl -m g:组名:权限 文件名  # 为指定用户组

设置权限

例如:

setfacl -m u:john:rw file.txt  # 给用户

john添加读写权限

setfacl -m g:developers:rx file.txt  # 给

developers组添加读和执行权限

总结

Linux的权限管理系统是保障系统安全的重要组成部分。通过合理设置文件和目录的权限,可以有效控制用户对系统资源的访问。掌握权限管理的基本概念和操作方法,对于系统管理和安全维护至关重要。

相关文章:

  • 数据结构与算法:最小生成树
  • PakePlus支持将vue/react等项目打包为跨平台桌面软件了
  • 高并发内存池
  • visual studio 中导入 benchmark
  • TouchSocket TcpService:构建高性能Tcp服务的终极利器
  • 某网关管理软件 9-12ping.php 命令执行漏洞(CVE-2025-1448)
  • YOLOv5
  • 基于 Milvus 和 BiomedBERT 的医学文献智能搜索系统
  • 如何通过iPaaS集成平台快速配置协议接口
  • vscode 源代码管理
  • Windows系统本地部署OpenManus对接Ollama调用本地AI大模型
  • Day 3
  • 快速入手-基于Django的主子表间操作mysql(五)
  • 学习111
  • VL开源模型实现文本生成图片
  • Python第六章06:列表的循环练习
  • 《白帽子讲 Web 安全》之开发语言安全深度解读
  • 17153. 班级活动(蓝桥杯-python)
  • CAN FD、传统CAN以及RS-485通信介绍
  • <C#> 详细介绍.net 三种依赖注入:AddTransient、AddScoped、AddSingleton 的区别
  • 海港负国安主场两连败,五强争冠卫冕冠军开始掉队
  • 龚正盛秋平王晓真共同启动2025国际消费季暨第六届上海“五五购物节”
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 向左繁华都市,向右和美乡村,嘉兴如何打造城乡融合发展样本
  • 厚重与潮流交织,淮安展现“运河之都”全新城市想象
  • 安徽省公安厅原副厅长刘海石主动投案,正接受审查调查