Linux:文件权限详解及修改方法

news2024/12/25 23:32:21

文章目录

    • 1、Linux文件权限
      • 1.1、如何查看到文件权限
      • 1.2、ll命令介绍
    • 2、权限分类
      • 2.1、文件权限
      • 2.2、文件夹权限
    • 3、权限修改
      • 3.1、修改文件/文件夹权限
        • 1)chmod指令
        • 2)chmod指令符号
      • 3.2、修改文件/文件夹所属用户
      • 3.3、修改文件/文件夹所属群组
    • 4、参考

1、Linux文件权限

1.1、如何查看到文件权限

使用ls -l或者ll指令可以直接查看到如下的标记,这些标记代表的相关文件或文件夹的权限类型及所属:

image-20240222100605216

其中分四段:

  • 第一段,为文件/文件夹权限,其中首个bit位字符为文件类型,一共有如下的七种:前三种为常见类型
类型说明
-普通文件。
d目录,字母ddirtectory(目录)的缩写。
l符号链接。请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息。
b块设备文件。
c字符设备文件。
p管道文件
s套接口文件

像类型为文件,如下面这种:

image-20240223160559384

之后跟随的会有9个bit位,分别代表不同的权限类型,后续再进一步讨论。

  • 第二段,为文件/子目录的链接数量

像上述的文件结果中,1表示有一个硬链接指向文件python.gram,一般来说文件类型均为1。如果为文件夹类型则表示的是链接的子目录个数。

  • 第三段,为权限所属用户

表示拥有当前文件或目录的用户。

  • 第四段,为权限所属群组

表示所属的群组(group)。群组下的每一个使用者都具有该文件\路径的控制权限,一个用户可以拥有一个以上的组,大部分都只属于1个群组。

1.2、ll命令介绍

在Ubuntu中默认不含ll命令,其实质为ls -l的别名,我们可以通过修改环境变量自行添加:

# 切换管理员模式
su
# 修改系统环境变量
vim ~/.bashrc

添加或将下面这一段去掉注释:

image-20240222095730569

修改完成之后,使环境变量生效:

source ~/.bashrc

image-20240222100228829

**注:**root环境变量和普通用户环境变量不共通,使用ll指令,不同用户下需单独修改。

2、权限分类

2.1、文件权限

在文件类型字节位后,紧接着的3*3个字符分3组,各表示不同角色对此文件的读®、写(w)、执行权限(x)

  • 第一段:3bit,对应**文件所有者(owner)**的权限
- rwx --- ---    对应文件所有者(owner)拥有读写及执行权限,设定值为700,其值等于下面三项值相加
- r-- --- ---    对应文件所有者(owner)拥有读权限,设定值为400
- -w- --- ---    对应文件所有者(owner)拥有写权限,设定值为200
- --x --- ---    对应文件所有者(owner)拥有执行权限,设定值为100
  • 第二段:3bit,对应**文件所属用户群组(group)**的权限
- --- rwx ---    对应文件所属群组(owner)拥有读写及执行权限,设定值为070,其值等于下面三项值相加
- --- r-- ---    对应文件所属群组(owner)拥有读权限,设定值为040
- --- -w- ---    对应文件所属群组(owner)拥有写权限,设定值为020
- --- --x ---    对应文件所属群组(owner)拥有执行权限,设定值为010
  • 第三段:3bit,对应**其他用户(others)**的权限
- --- --- rwx    对应其他用户(others)对文件拥有读写及执行权限,设定值为007,其值等于下面三项值相加
- --- --- r--    对应其他用户(others)对文件拥有读写及执行权限,设定值为004
- --- --- -w-    对应其他用户(others)对文件拥有读写及执行权限,设定值为002
- --- --- --x    对应其他用户(others)对文件拥有读写及执行权限,设定值为001

上述权限对应下来则为八进制码表,二进制码的计算顺序为从右往左:

八进制位权限权限符号二进制位
7读\写\执行rwx111
6读\写rw-110
5读\执行r-x101
4r–100
3写\执行-wx011
2-w-010
1执行–x001
0无权限000

举例:

权限符号为rw-,其二进制位为110,则二进制转为八进制为,计算顺序为从右往左: 2 0 2^0 20+ 2 1 2^1 21+ 2 1 2^1 21=6,即r为2号位值为1,w为1号为值为1,-为0号位值为0。

2.2、文件夹权限

文件夹的权限标识与文件相同,但所具有的含义不一样,对应如下:

  • r:能够浏览目录信息,包括目录名称及所含文件等信息。无权限时无法查看对应内容

image-20240223171228842

  • w:能够删除新增或修改目录中的文件或目录。无权限时限制删除新增等操作

image-20240223171711277

  • x:当具有x权限时,能够进入该目录。无权限时被限制进入

image-20240223171127644

3、权限修改

3.1、修改文件/文件夹权限

1)chmod指令

chmod修改文件权限:

chmod [选项] 权限 文件名/文件夹名

[选项]为可选,支持以下常用参数:

参数作用
-c改变权限成功后再输出成功信息
-R递归处理所有子文件
-f改变权限失败后不显示错误信息
-v显示执行过程详细信息

示例:

# 设置文件夹权限为770:文件所有者和用户群组有读\写\执行权限,其他用户无权限
chmod 770 testDir
# 设置文件权限为707:文件所有者和其他用户有读\写\执行权限,用户群组无权限
chmod 707 testfile

image-20240223170729874

**注:只有文件所有者(owner)或管理员(root)**才允许修改文件权限。

2)chmod指令符号

在chmod指令中,可以使用用户表示符和权限控制符号来简化指令,更为的清晰,其对应的不同符号如下:

  • 用户表示符
用户表示符说明
u所有者
g拥有者同组用户
o其它用户
a所有用户
  • 权限操作符
权限操作符含义
+表示添加权限
-表示移除权限
=表示设置权限为特定的值
  • 权限符号
符号含义
r读取权限
w写入权限
x执行权限

组合使用举例:

# 给文件file.txt的所有者(u)增加读取(+r)权限
chmod u+r file.txt
# 从文件file.txt的拥有者同组用户(g)中移除写入(-w)权限
chmod g-w file.txt
# 给目录directory的其他用户(o)增加执行(+x)权限
chmod o+x directory
# 给文件file.txt的所有用户(a)设置读取和写入权限
chmod a=rw file.txt

3.2、修改文件/文件夹所属用户

chown修改文件/文件夹所属的用户:

chown [选项] 新所属用户名 文件名/文件夹名

chown常用的[选项]参数:

常用参数描述
-R, --recursive递归地更改指定目录及其子目录中所有文件和目录的所有者。
--reference=RFILE把指定文件的拥有者和用户组应用到其他文件, RFILE为参考文件。
--from=CURRENT_OWNER[:CURRENT_GROUP]仅在文件的当前所有者或用户组匹配指定的值时才更改文件的所有者和/或用户组。
--preserve-root不允许在 “/” 上递归操作
-v, --verbose显示详细的操作信息。

示例:

# 将file.txt文件所属用户修改为用户miniboy
chown miniboy file.txt

image-20240302175436935

**注:**所修改的新用户,为存在的用户,否则会执行失败,提示无效用户。

--from=CURRENT_OWNER[:CURRENT_GROUP]参数使用举例:当匹配到对应的所有者/用户组时才进行修改

# 当file.txt的当前所有者是olduser,用户组是oldgroup时,才将其所有者更改为newuser,用户组更改为newgroup
chown --from=olduser:oldgroup newuser:newgroup file.txt

3.3、修改文件/文件夹所属群组

chgrp更改文件或文件夹所属用户组(group):

chgrp [选项] 用户组名 文件名/文件夹名

在[选项]参数方面与chown类似,常用参数如下:

参数描述
-R, --recursive递归地更改指定目录及其子目录中所有文件和目录的所属用户组。
--reference=RFILE把指定文件的用户组应用到其他文件。
--preserve-root不要跨越文件系统的边界,这对于递归操作非常重要。
-v, --verbose显示详细的操作信息。
--dereference在符号链接指向文件本身时,处理符号链接指向的文件而不是符号链接文件本身。

使用示例:

# 将file.txt文件的所属群组修改为newgroup
chgrp newgroup file.txt

chgrp部分修改也能够通过chown来实现,如修改拥有者和所属组:

chown :root file30.txt (修改所属组为root)
chown root:root file30.txt (修改拥有者和所属组为root)

**注:**只有超级用户(root)或者文件的当前所有者才能使用chgrp命令。

4、参考

https://blog.csdn.net/m0_56311933/article/details/123006978

https://www.cnblogs.com/kongzhongqijing/p/3488884.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1498483.html

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

相关文章

CXYGZL实现钉钉、飞书和微信全面覆盖!!!

非常欣慰能在这里与大家分享,CXYGZL已圆满实现多端互通的目标!!! 无论您是在手机、电脑还是平板上使用钉钉、企微还是飞书,只需将CXYGZL轻松集成到您的办公软件中,即可实现无缝审批处理各项任务&#xff0c…

【你也能从零基础学会网站开发】Web建站之HTML+CSS入门篇 常用HTML标签(1)

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 HTML中的双…

数据结构 - 堆

这篇博客将介绍堆的概念以及堆的实现。 1. 堆的定义: 首先堆的元素按照是完全二叉树的顺序存储的。 且堆中的某个节点总是不大于或不小于其父节点的值。 根节点最大的堆叫做大堆,根节点最小的堆叫小堆。逻辑结构如下图所示: 大堆和小堆的…

Spring揭秘:ApplicationContextAware应用场景及实现原理!

内容概要 ApplicationContextAware接口能够轻松感知并在Spring中获取应用上下文,进而访问容器中的其他Bean和资源,这增强了组件间的解耦,了代码的灵活性和可扩展性,是Spring框架中实现高级功能的关键接口之一。 核心概念 它能用…

腾讯云学生服务器详细介绍_学生服务器价格_学生机申请流程

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

Java开发从入门到精通(一):Java的基础语法高阶

Java大数据开发和安全开发 (一)Java的流程控制1.1 分支语句1.1.1 IF分支语句第一种IF语句第二种IF-ELSE语句第三种IF-ELSE IF-ELSE语句if语句使用的几个常见问题 1.1.2 switch分支语句switch分支的执行流程switch分支的导学案例:电子备忘录if、switch的比较&#xf…

关于JavaScript你该知道的(错误)和不知道的(技巧)

关于JS你该知道的(错误)和不知道的(技巧) 你该知道的(容易犯的错误) 忽略异步函数// Incorrect: Ignoring the asynchronous nature of setTimeout console.log("Start"); setTimeout(() => console.log("Timeout"), 0); console.log("End&q…

【实验】学习实验debug,以及经验感悟

记录两次独立解决问题的过程: 目前来看,问题分为几种: 抄代码的时候抄错了,比如dim1写成dim0这种 逻辑错误,如果两份代码没什么差别的话,那么肯定是逻辑错误。 下面的两个问题都是逻辑错误,因为…

【C++精简版回顾】21.迭代器(未完成)

1.什么是迭代器&#xff1f; 用来遍历容器&#xff0c;访问容器数据。 2.迭代器使用 1.初始化 //初始化 list<int> mylist;//list的整数对象 list<int>::iterator iter;//list内部类&#xff0c;迭代器对象(正向输出) list<int>::reverse_iterator riter;//…

Android使用WebView打开网页链接(内嵌H5网页)的两种方式之一

发布Android应用&#xff0c;除了用原生开发外&#xff0c;更多是采用内嵌H5网页的方式来做&#xff0c;便于更新以及多平台使用。 一、第一种方式是直接通过WebView打开外部H5链接。 新建Android工程 直接创建一个工程&#xff0c;点击运行就可以了&#xff0c;打开是个空页…

PaddlePaddle----基于paddlehub的OCR识别

Paddlehub介绍 PaddleHub是一个基于PaddlePaddle深度学习框架开发的预训练模型库和工具集&#xff0c;提供了丰富的功能和模型&#xff0c;包括但不限于以下几种&#xff1a; 1.文本相关功能&#xff1a;包括文本分类、情感分析、文本生成、文本相似度计算等预训练模型和工具。…

基于springboot精品在线试题库系统论文

摘 要 使用旧方法对作业管理信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在作业管理信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发的精品在线试题库系…

022—pandas 根据时间段转换为各小时的秒数

前言 本例中&#xff0c;有一些时间段数据&#xff0c;需要将这些时间段里的时间以小时为分组&#xff0c;将24个小时段中每个小时所占用的秒数计算出来。 需求&#xff1a; 以第一条数据为例&#xff0c;它所在两个小时&#xff0c;7点段占用24分钟15秒&#xff0c;8点段54…

【一起学习Arcade】(5):属性规则实例_计算规则

属性规则可改善地理数据库数据集的编辑体验并提高数据完整性。 这些规则均为用户定义的规则&#xff0c;可用于自动填充属性、在编辑操作期间限制无效编辑&#xff0c;以及对现有要素执行质量保证检查。 属性规则分为3类&#xff1a;计算、约束和验证。 这一篇介绍计算规则&…

光谱整形1

华为张德江&#xff1a;下一代光传送网将走向400G80波WDM系统_通信世界网 (cww.net.cn) 张德江指出&#xff0c;400G WDM系统具有三大基本特征&#xff1a;支持400G80波&#xff0c;单纤32T超大容量&#xff0c;传输距离与100G相当&#xff1b;支持32维以上的光交叉&#xff1…

为什么不从独立服务器中转向云或其他方案呢?

传统的专用服务器&#xff0c;如香港服务器租赁、重庆服务器租赁等&#xff0c;是最强大、最稳定的业务托管类型之一。您将获得比任何其他托管计划更多的管理权限和卓越的性能&#xff0c;并且您可以控制整个服务器上的几乎所有内容。 当然&#xff0c;专用服务器也是在线业务…

昏暗场景增强-低照度增强-弱光增强(附代码)

引言 随着现代科技的发展&#xff0c;图像采集设备已经渗透到生活的方方面面&#xff0c;然而在昏暗场景、低照度或弱光条件下&#xff0c;图像的质量往往受到严重影响&#xff0c;表现为亮度不足、对比度低下、色彩失真以及细节丢失等问题。这类图像对于人眼识别和计算机视觉…

大数据冷热分离方案

数据冷热分离方案 1、背景 ​ 随着业务的发展&#xff0c;在线表中的数据会逐渐增加。常规业务都有冷热数据现象明显的特性&#xff08;需要访问的都是近期产生的热数据&#xff1b;时间久远的冷数据出于备份、备案溯源等诉求会进行在线保留&#xff09;。在业务表数据 量可控…

自动化测试之web自动化(Selenium)

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

基础小白快速入门并行计算------>我们为什么要学习并行计算

什么是并行计算&#xff1f; 随着计算机的不断发展&#xff0c;我们处理的数据不断变多&#xff0c;需要更大得到处理能力、我们希望计算机有着更大更强壮的计算能力&#xff0c;由于cpu的运行能力有限&#xff0c;我们便想到了将多个cpu进行串联计算问题&#xff0c;这也就是我…