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-xchmod 644 file.txt  # 设置权限为rw-r--r--

2. chown命令

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

chown 用户[:组] 文件名

例如:

chown user1 file.txt  # 修改所有者为user1chown 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  # 设置SUIDchmod g+s directory  # 设置SGIDchmod +t directory  # 设置Sticky Bitchmod 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.mzph.cn/news/898574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十四次CCF-CSP认证(含C++源码)

第十四次CCF-CSP认证 卖菜满分思路 买菜满分思路 再卖菜满分题解(差分约束)solution 1(枚举 correct but 超时)solution 2(正解) 卖菜 题目链接 满分思路 就是模拟一下这个调整第二天菜价的过程,其中对于两种只有一个邻居的情况下做出调整&…

CCBCISCN复盘

AWDP – ccfrum 自己搭了一下环境, 复现一下这道题目, 之前比赛的时候完全没想到这个漏洞要怎么打, 修也不知道要怎么修, 就仅仅是对用户名的账号和密码进行了一下过滤, 完全没起到作用, 唉, 实在太菜 如果想要尝试复现的话可以尝试拉取这个镜像, 我打完之后就直接把这个容器给…

(每日一道算法题)交易逆序对的总数

LCR 170. 交易逆序对的总数 - 力扣(LeetCode) 在股票交易中,如果前一天的股价高于后一天的股价,则可以认为存在一个「交易逆序对」。请设计一个程序,输入一段时间内的股票交易记录 record,返回其中存在的「…

【操作系统】共享数据的竞争问题

共享数据的竞争问题 问题:保护中断与主程序共享的avg_data方法一:使用关中断保护1. 添加关中断宏2. 修改数据读取代码3. 修改中断服务程序(ISR) 方法二:使用原子操作(需平台支持)1. 定义原子类型…

VS010生成可由MATLAB2016调用的DLL文件方法

亲测实用,不用配置杂七杂八的依赖项 1:新建Win32的DLL输出项目 2:修改为release模式 3:添加calc.cpp文件,即要导出的函数myadd: #include "calc.h" __declspec(dllexport) int myadd(int a,in…

机器学习Pandas_learn4

import pandas as pddef calculate_goods_covariance():# 定义商品销售数据字典goods_sales_data {"时期": ["一期", "二期", "三期", "四期"],"苹果": [15, 16, 3, 2],"橘子": [12, 14, 16, 18],&quo…

优选算法系列(3.二分查找 )

目录 一.二分查找(easy) 题目链接:704. 二分查找 - 力扣(LeetCode) 解法: 代码: 二.在排序数组中查找元素的第⼀个和最后⼀个位置(medium) 题目链接:34.…

DAY36贪心算法Ⅴ

56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; class Solution { static bool cmp(vector<int>&a,vector<int>&b){return a[0] < b[0]; } public:vector<vector<int>> merge(vector<vector<int>>& intervals) {so…

阿里云服务器部署 五 Nginx + springboot

Nginx的部分配置 1. 基础容灾配置&#xff08;被动健康检查&#xff09; 在 upstream 块中&#xff0c;通过 max_fails 和 fail_timeout 参数定义故障转移规则&#xff1a; 在 upstream 块中&#xff0c;通过 max_fails 和 fail_timeout 参数定义故障转移规则&#xff1a;…

基于大模型的下颌前突畸形预测及治疗方案研究报告

目录 一、引言 1.1 研究背景 1.2 研究目的 1.3 研究意义 二、大模型技术原理与应用现状 2.1 大模型的基本原理 2.2 在医疗领域的应用案例 2.3 在下颌前突畸形研究中的可行性分析 三、下颌前突畸形概述 3.1 定义与分类 3.2 流行病学特征 3.3 病因与发病机制 3.4 对…

接口自动化测试框架详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛…

Day11 动态规划入门

动态规划 就是 : 给定一个问题&#xff0c;我们把它拆成一个个子问题&#xff0c;直到子问题可以直接解决。然后把子问题的答案保存起来&#xff0c;以减少重复计算。再根据子问题答案反推&#xff0c;得出原问题解的一种方法. 记忆化搜索 暴力dfs 记录答案 动态规划入门思…

[AI速读]用持续集成(CI)优化芯片验证环境:Jenkins与EDA工具的实战指南

在芯片验证中,回归测试(Regression Test)是确保设计稳定性的关键步骤。但随着设计复杂度增加,手动管理海量测试用例、分析日志和覆盖率数据变得异常耗时。本文将介绍如何利用持续集成(CI)工具Jenkins,结合EDA验证环境(如Cadence vManager),实现自动化测试与结果分析,…

深度解析:JavaScript变量声明的演变与核心差异(var/let/隐式声明)

深度解析&#xff1a;JavaScript变量声明的演变与核心差异&#xff08;var/let/隐式声明&#xff09; 一、JavaScript变量声明的演进史 JavaScript的变量声明机制经历了三个阶段演进&#xff1a; 原始阶段&#xff08;ES5及之前&#xff09;&#xff1a;仅 var 声明 隐式全局…

第2.1节:AWK脚本结构

1 第2.1节&#xff1a;AWK脚本结构 1.1 第1个awk脚本 假设有如下的数据待处理&#xff0c;需要将第2列提取出来&#xff1a; #, 名称, 大小, 类型, 修改, 属性 1, COMMIT_EDITMSG, 331 bytes, 文件, 24/09/16 08:42:19, -a----- 2, config, …

Win NAS 分享功能:精准、安全的内容共享

WinNAS 不仅是一款强大的 NAS服务&#xff0c;还通过耘想存储 APP 提供了便捷的内容分享功能。无论是与个人、群聊、朋友圈还是公众分享文件&#xff0c;WinNAS 都配备了严格的权限管理机制&#xff0c;确保您的数据安全且精准地传递给目标对象。以下是 WinNAS 分享功能的详细介…

C# 项目06-计算程序运行时间

实现需求 记录程序运行时间&#xff0c;当程序退出后&#xff0c;保存程序运行时间&#xff0c;等下次程序再次启动时&#xff0c;继续记录运行时间 运行环境 Visual Studio 2022 知识点 TimeSpan 表示时间间隔。两个日期之间的差异的 TimeSpan 对象 TimeSpan P_TimeSpa…

网络华为HCIA+HCIP NFV

目录 NFV关键技术&#xff1a;虚拟化 NFV关键技术&#xff1a;云化 NFV架构 NFV标准架构 ​编辑 NFV架构功能模块 NFV架构接口 NFV关键技术&#xff1a;虚拟化 在NFV的道路上&#xff0c;虚拟化是基础&#xff0c;云化是关键。传统电信网络中&#xff0c;各个网元都是…

SpringBoot实现异步调用的方法

在Java中使用Spring Boot实现异步请求和异步调用是一个常见的需求&#xff0c;可以提高应用程序的性能和响应能力。以下是实现这两种异步操作的基本方法&#xff1a; 一、异步请求&#xff08;Asynchronous Request&#xff09; 异步请求允许客户端发送请求后立即返回&#x…

xwiki自定义认证实现单点登录

xwiki支持自定义认证 继承XWikiAuthServiceImpl类后将类配置到WEB-INFO下xwiki.cfg的xwiki.authentication.authclass属性上开启自定义认证。 官方文档&#xff1a;https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Authentication/ 官方自定义认证的示例&#…