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

第四节:权限管理

理论知识

  1. 文件和目录的权限:在 Linux 系统中,文件和目录的权限分为读(r)、写(w)、执行(x)三种。读权限允许用户查看文件内容或目录列表,写权限允许用户修改文件内容或在目录中创建、删除文件,执行权限允许用户运行文件或进入目录。
  2. 权限的表示方法:权限可以用字符法或八进制法表示。字符法用 rwx 表示读、写、执行权限,用 - 表示没有该权限。八进制法用数字 4(读)、2(写)、1(执行)的组合来表示权限,例如 7 表示读、写、执行权限(4 + 2 + 1)。
  3. 文件和目录的所有者、所属组和其他用户:每个文件和目录都有一个所有者和所属组,除了所有者和所属组的用户外,其他用户也可以对文件和目录进行访问。可以分别为所有者、所属组和其他用户设置不同的权限。
  4. 修改文件和目录的权限:使用 chmod 命令可以修改文件和目录的权限。可以使用字符法或八进制法来指定新的权限。
  5. 修改文件和目录的所有者和所属组:使用 chown 命令可以修改文件和目录的所有者,使用 chgrp 命令可以修改文件和目录的所属组。
  6. 特殊权限位:除了基本的读、写、执行权限外,Linux 系统还有一些特殊权限位,如 SUID、SGID 和粘滞位。SUID 权限允许用户以文件所有者的身份执行文件,SGID 权限允许用户以文件所属组的身份执行文件,粘滞位可以防止用户删除其他用户的文件。
  7. 默认权限掩码(umask):umask 是一个用于设置新建文件和目录默认权限的掩码。默认情况下,新建文件的权限是 666 减去 umask,新建目录的权限是 777 减去 umask。
  8. 权限的继承:当创建一个新的文件或目录时,它会继承其父目录的权限和所属组。可以通过设置目录的 SGID 权限来确保新创建的文件和目录继承该目录的所属组。
  9. 权限的递归修改:使用 chmodchown 命令的 -R 选项可以递归地修改目录及其子目录和文件的权限和所有者。
  10. 文件权限的查看:使用 ls -l 命令可以查看文件和目录的权限信息。
  11. 权限的安全影响:合理设置文件和目录的权限可以提高系统的安全性,防止未经授权的访问和数据泄露。
  12. 权限的审计和监控:可以通过查看系统日志和使用审计工具来监控文件和目录的权限变更,及时发现异常行为。

实践案例

  1. 查看文件的权限:使用 ls -l 命令查看 test.txt 文件的权限:
ls -l test.txt
  1. 修改文件的权限(字符法):将 test.txt 文件的所有者添加执行权限:
chmod u+x test.txt
  1. 修改文件的权限(八进制法):将 test.txt 文件的权限修改为 755(所有者具有读、写、执行权限,所属组和其他用户具有读、执行权限):
chmod 755 test.txt
  1. 修改文件的所有者:将 test.txt 文件的所有者改为 testuser
sudo chown testuser test.txt
  1. 修改文件的所属组:将 test.txt 文件的所属组改为 testgroup
sudo chgrp testgroup test.txt
  1. 设置文件的 SUID 权限:将 test.sh 脚本设置为 SUID 权限:
sudo chmod u+s test.sh
  1. 设置文件的 SGID 权限:将 test.sh 脚本设置为 SGID 权限:
sudo chmod g+s test.sh
  1. 设置目录的粘滞位:将 /tmp 目录设置为粘滞位:
sudo chmod +t /tmp
  1. 查看当前的 umask 值:使用 umask 命令查看当前的 umask 值:
umask
  1. 修改 umask 值:临时修改 umask 值为 0022:
umask 0022
  1. 递归修改目录及其子目录和文件的权限:将 /home/testuser 目录及其子目录和文件的权限修改为 755:
sudo chmod -R 755 /home/testuser
  1. 递归修改目录及其子目录和文件的所有者和所属组:将 /home/testuser 目录及其子目录和文件的所有者改为 testuser,所属组改为 testgroup
sudo chown -R testuser:testgroup /home/testuser

相关文章:

  • verdi使用tcl脚本批量添加波形
  • 基于STM32的中点圆算法,画空心圆的函数
  • 【数据结构】图论存储结构深度解析:邻接多重表如何实现无向图O(1)删边?邻接矩阵/链表/十字链对比
  • 【Prometheus-Mongodb Exporter安装配置指南,开机自启】
  • Educational Codeforces Round 178 div2(题解ABCDE)
  • Qwen3术语解密
  • 解决调用Claude 3.7接口 403 Request not allowed问题
  • Linux 内核中 TCP 协议的支撑解析
  • 通信协议:数字世界的隐形语言——从基础认知到工程实践-优雅草卓伊凡
  • C++每日训练 Day 18:构建响应式表单与数据验证(初学者友好)
  • [USACO08DEC] Hay For Sale S Java
  • WPF(Windows Presentation Foundation)的内容模型
  • Go 语言中的 `os.Truncate` 函数详解
  • STM32单片机入门学习——第49节: [15-2] 读写内部FLASH读取芯片ID
  • 本地大模型编程实战(29)查询图数据库NEO4J(2)
  • Mysql中索引的知识
  • 洛谷P12238 [蓝桥杯 2023 国 Java A] 单词分类
  • 基于LVS+Keepalived+NFS的高可用负载均衡集群部署
  • 基于大模型的大肠息肉全程管理研究报告
  • 破茧成蝶:一家传统制造企业的年轻化转型之路
  • “天链”继续上新!长三乙火箭成功发射天链二号05星
  • 新干式二尖瓣瓣膜国内上市,专家:重视瓣膜病全生命周期管理
  • 李强主持召开国务院常务会议
  • 【社论】用生态环境法典守护生态文明
  • 中国航天员乘组完成在轨交接,神十九乘组将于29日返回地球
  • “梅花奖”快闪走入上海张园,朱洁静在石库门前起舞