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

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


http://www.kler.cn/a/595173.html

相关文章:

  • 阿里云服务器部署 五 Nginx + springboot
  • 3.21-1自动化框架
  • Java求101-200之间有多少素数
  • 数字化转型,目的是为了转型还是数字化?
  • 菜品分页查询-01.需求分析和设计
  • dify联网搜索如何限制在只在一个网站上搜索呢??
  • 《C++11 基于CAS无锁操作的atomic原子类型》
  • Linux基础开发工具——gdb/cgdb(7)
  • AI风向标《AI与视频制作全攻略:从入门到精通实战课程》
  • 多无人车协同探索开源包启动文件介绍(上)
  • k8s中service概述(二)NodePort
  • 加速还是安全?CDN与群联云防护的本质差异与适用场景
  • Blender标注工具
  • Webrtc编译官方示例实现视频通话
  • 【初探数据结构】二叉树的顺序结构——堆的实现详解(上下调整算法的时间复杂度分析)
  • 10-STL、位运算、常用函数库
  • filebeat和logstash区别
  • Mysql Innodb引擎执行过程
  • Day11 动态规划入门
  • 又双叒叕Scrapy爬虫相关的面试题及详细解答