[Linux 杂货铺] —— 权限(文件权限和目录配置)

news2024/7/6 20:58:39

目录

🌈前言

📁 文件的属性

📁 权限的概念

📂拥有者和所属组(角色):

📂用户(具体的人):

📁 权限的管理

📂1. chmod 指令:修改文件的权限。

📂2. chgrp 指令:  修改文件所属组。

📂3. chown 指令: 修改文件拥有者。

📁 一般文件权限

📁 目录权限

📁 粘滞位

📁 总结


🌈前言

        本期[ Linux杂货铺 ]带来的 权限。我们学习Linux,就是在和文件目录这些打交道,所以搞懂它们的属性之一——权限就很重要,这篇文章将从不同角度带你深入理解权限的概念,如何修改权限,以及区分文件和目录权限的不同。

                Linux最优秀的地方之一就是在于它的多人多任务环境,而为了让每个用户都具有保密的文件数据,因此文件权限管理就变得很重要了。Linux中将文件可读写的身份分为:拥有者(owner),所属组(group),其他人(other),且这三种身份各有读(read),写(write),执行(execute)等权限。那么这些身份和权限各有什么意义呢,下面我们来一一介绍。

📁 文件的属性

        在介绍文件之前,我们先来看看文件都有什么属性把,使用 【ls -al】指令,来查看文件详细属性。

拓展:

        ls是list意思,重点显示文件的文件名与相关属性,选型-al的意思就是列出所有的文件详细的权限与属性(包含隐藏文件)。

        如下图所示,下图即文件属性示意图:

        这篇文章将重点讲解文件类型权限,和文件拥有者,文件所属组这三栏内容。

        我们说先来看第一栏文件类型权限,这里需要注意的是,这一栏一共有10个字符

拓:

第一个字符代表着这个文件是目录,文件或是链接文件等:
[ d ] 则是目录

[ - ]  则是文件

[ l ] 则是链接文件

[ b ] 则表示为设备文件里面可提供存储的周边设备(可随机读写的设备)

[ c ] 则表示为设备文件里面的串行端口设备,例如键盘,鼠标。

        接下来的字符中,以三个为一组,且均为【rwx】为组合,其中【r】代表可读,【w】代表可写,【x】代表可执行。如果没有权限,则用【-】代替。

        第一组为文件拥有者具有的权限,第二组为所属组所有的权限,第三组是其他人所有的权限。

        以上,我们就通过文件属性引入了权限,并对权限有了一定了解,接下来,我们就详细讲解一下什么是权限。

📁 权限的概念

        权限,可以简单理解为限制一部分人的权利,而不限制另一部分人。这里的人就是:用户,所属组,其他人。权利:r可读,w可写,x可执行。

📂拥有者和所属组(角色):

1. 文件拥有者:简单理解为,谁创建了文件,谁就是文件的拥有者。

2. 文件所属组:用户组也很好理解,就是和我同组的人。用户组最有用的功能之一就是当你在团队进行协同工作的时候。每个账号可以有多个用户组的支持。

3. 其他人:当一个账户既不是文件的拥有者,又不属于文件所属组,那么这个账户就是其他人。

        以上就是用户和用户组的概念,其实用户和用户组可以理解为角色卡,它是由一个一个的账户所扮演的,也就是我们下面所要讲的具体的人。

📂用户(具体的人):

1. root 用户:也就是我们常说的超级管理员,root账户在Linux中可是有很大的权限的,关于系统服务的文件通常只有root才能读写或执行。root基本不受系统的限制,无论文件的权限是什么,默认root都是可以读写的。

2. 普通用户:也就出了root账户以外的账户

拓:

        在Linux系统中,默认情况下,所有系统上的账户与一般身份用户,以及root的相关信息都记录在/etc/passwd这个文件中,至于个人密码在记录在/etc/shadow这个文件中,此外,Linux中所有组名都记录在/etc/group中。

📁 权限的管理

        权限值的表示方法,如下图所示:

📂1. chmod 指令:修改文件的权限。

 ( 1 ). 用户表示符 +/-= 权限字符
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
用户符号:  
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户
例如:
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
 ( 2 ). 三位 8 进制数字 
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

📂2. chgrp 指令:  修改文件所属组。

                如果要修改文件所属组,被修改的组名必须存在在/etc/group这个二维年鉴中,否则就会显示错误。

chgroup  【-R】   新的用户组名字   dirname/filename

选项与参数:

【-R】:进行递归修改,即连同子目录下的所有文件,目录都更新成为新用户组。

📂3. chown 指令: 修改文件拥有者。

        同样,使用chown时,要注意,新修改的用户必须是存在在系统账户中的,也就是/etc/passwd这个文件中有记录的用户名才能修改。扩充的一点是,chown也可以修改用户组。

chown    【-R】    账户名称    文件或目录

chown    【-R】    账户名称:用户组名称    文件或目录

选项与参数:

【-R】:进行递归修改,即连同子目录下的所有文件,目录都更新成为新用户/用户组。

        如果你要拷贝一个文件,使用cp命令后,还会复制执行者的属性与权限,如果我们想要修改呢,就可以使用chgrp和chown指令了。

拓:

新建文件夹默认权限 =0666
新建目录默认权限 =0777
        但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是 mask ,则实际创建的出来的文件权限是 : mask & ~umask。
        umask是文件掩码的意思,也是一条指令,查看或修改文件掩码。
# umask // 查看
# umask 044// 设置

📁 一般文件权限

        现在,我们知道了Linux系统内用户的三种身份(拥有者,所属组,其他人),以及他们所拥有的权限有哪些(r , w , x)。利用【ls -al】指令来查看。下面,我们来看一下文件权限对一般文件和目录文件有何不同。

对于一般文件:

● r (read) : 可读取该文件的实际内容,如读取文本文件的文字内容等;

● w (write) : 可以编辑,新增或是修改文件的内容。(注意,没有删除文件的权限);

● x (execute) : 该文件可以被系统执行的权限。

拓:

        在Linux中,不以后缀名区分文件,对于.exe为后缀名的文件,Linux是不区分的,当然Linux中的软件是区分的。

        因此,Linux中判断一个文件能否被执行,并不是以.exe后缀名来判断的。在Linux中如果一个文件想要被执行,必须符合一下两点:

        1. 该文件能够被执行,也就是该文件是一个可执行文件。

        2. 该文件是否具有【x】权限。

📁 目录权限

        文件是用来存放实际数据的,而目录主要记录的就是文件名列表等信息,文件名与目录有强烈的关系。

对于目录:

r : 具有读取目录结构列表的权限,所以当你具有r权限时,表示你可以查询该目录下的文件名数      据。

w:表示你具有改动该目录结构列表的权限,即 建立显得文件与目录,删除已经存在的文件与目录,将已经存在的目录或文件更名,移动该目录内的文件和目录位置。

x:表示用户可以进入该目录,即该目录成为工作目录。

📁 粘滞位

可执行权限 : 如果目录没有可执行权限 , 则无法 cd 到目录中 .
可读权限 : 如果目录没有可读权限 , 则无法用 ls 等命令查看目录中的文件内容 .
可写权限 : 如果目录没有可写权限 , 则无法在目录中创建文件 , 也无法在目录中删除文件 .
        问题来了, 就是只要用户具有目录的写权限 , 用户就可以删除目录中的文件 , 而不论这个用户是否有这个文件的写权限。这好像不太科学啊, 我张三创建的一个文件 , 凭什么被你李四可以删掉 ?

        为了解决这个问题,Linux引入了粘滞位的概念。

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

📁 总结

        权限就是限定用户可以执行哪些操作的,权限分为r,w,x,用户的角色分为所有者,所属组,其他人,而这些角色是由一个个普通用户和root用户来充当的,其中用户是可以修改的。文件的权限是对针对文件的内容,而目录的权限主要是针对文件名等内容。

        以上,我们就对文件的权限进行了讲解,其中包含了一般文件的权限意义和目录权限的意义,已讲解了如何修改权限。

        如最后,如果感觉这篇文章对你有用,欢迎点赞,收藏,关注;也希望大家找出文章不足,在评论区讨论交流,互相学习。Thanks♪(・ω・)ノ

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

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

相关文章

对读取的Excel文件数据进行拆分并发请求发送到后端服务器

首先,我们先回顾一下文件的读取操作: 本地读取Excel文件并进行数据压缩传递到服务器-CSDN博客 第一步:根据以上博客,我们将原先的handleFile方法,改为以下内容: const handleFile async(e) > {conso…

gitlab.rb主要配置

根据是否docker安装,进入挂载目录或安装目录 修改此文件,我一般是在可视化窗口中修改,有时候也在命令行手敲 将下面的配置复制到该文件中 external_url http://192.168.100.50 # nginx[listen_port] = 8000 (docker安装的这一行不需要,因为端口映射导致此处修改会导致访问…

Python 自动化办公:一键批量生成 PPT

Stata and Python 数据分析 一、导读 在实际工作中,经常需要批量处理Office文件,比如需要制作一个几十页的PPT进行产品介绍时,一页一页地制作不仅麻烦而且格式可能不统一。那么有什么办法可以一键生成PPT呢?Python提供的pptx 包…

常见PCB封装

表面贴片封装 通孔封装 公众号 | FunIO 微信搜一搜 “funio”,发现更多精彩内容。 个人博客 | blog.boringhex.top

Web 开发 1: Flask 框架介绍和使用

在 Web 开发中,Flask 是一个流行且灵活的 Python Web 框架,用于构建 Web 应用程序。它简洁而易于上手,适用于小型到中型的项目。在本篇博客中,我将为你介绍 Flask 框架的基础知识和常用技巧,帮助你更好地掌握 Web 开发…

android audio framework

linux ALSA ALSA表示高级Linux声音体系结构(Advanced Linux Sound Architecture)。它由一系列内核驱动,应用程序编译接口(API)以及支持Linux下声音的实用程序组成。 最上层是音频应用和声卡服务;ALSA Library:alsa 提高用户空间访问声卡设备…

【就现在这个市场环境,还是别选游戏开发行业了】

就现在这个市场环境,还是别选游戏开发行业了 最近上网闲逛时我发现,一提到“怎样进入游戏开发行业?”, 大部分都是劝退。 劝退的点大致有以下几点: 🟥 游戏开发经常需要加班,尤其是项目快要…

如何在Shopee平台上选择LED产品进行销售的步骤和策略

在如今的电商市场中,Shopee平台是一个非常受欢迎的在线销售平台。如果您计划在Shopee上销售LED产品,那么了解如何选择合适的产品是至关重要的。在本文中,我们将为您介绍一些在Shopee平台上选择LED产品进行销售的步骤和策略,以帮助…

防御保护-防火墙

1.防火墙的主要职责: 控制和防护--安全策略(本质ACL)--防火墙可以根据安全策略来抓取流量之后做出相应的动作 2-4层 2.防火墙分类: 吞吐量:防火墙同一时间处理的数据量 3.防火墙的发展历程 包过滤防火墙 应用代理防…

thinkphp5实战之phpstudy v8环境搭建,解决Not Found找不到路径问题

引言 thinkphp以快速、简约的大道至简的思想广受欢迎,适合开发小型项目。本地环境下,phpstudy v8是一款比较优秀的集成环境软件。部署完项目后,访问的时候傻眼,报错。 解决方案 不要慌,这个是伪静态的原因。选择apach…

【漏洞复现】SpringBlade export-user接口SQL注入漏洞

文章目录 前言声明一、SpringBlade系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 SpringBlade 是一个由商业级项目升级优化而来的微服务架构 采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和…

乳糖不耐受人群,多喝牛奶,反而降低糖尿病风险?

撰文 | 宋文法 牛奶是生活中常见的饮品,牛奶含有丰富的营养成分,包括蛋白质、钙、维生素D、维生素B等,牛奶的营养成分可以帮助增强人体的体质,提高免疫力,预防疾病。 在中国,奶制品的消费量远低于西方人口&…

大模型学习与实践笔记(十二)

将RAG生成模型部署到openxlab 平台 代码仓库:https://github.com/AllYoung/LLM4opencv 1:创建代码仓库 在 GitHub 中创建存放应用代码的仓库,其代码大致目录树如下: ├─GitHub repo │ ├─app.py # …

云渲染平台在场景渲染作业中提供的优势

​云渲染平台在场景渲染作业中提供的优势不容小觑,它开启了一种高效、便捷且成本可控的渲染流程。通过利用强大的云端计算资源,艺术家和开发者们可以轻松上传他们的项目,并快速得到高质量的渲染结果。这种技术特别适合处理那些对计算能力要求…

技术浪潮中的职业变革:程序员面临的裁员挑战与应对策略

目录 前言 冲破时空壁垒:探索技术变革的酷时代! 逆境成长:一个互联网人战胜失业困境的故事 裁员的双面影响:挑战与机遇 应对裁员潮危机:程序员的超级英雄之路 前言 惊人的新闻传来,一对来自中国的工程师…

leetcode第 381 场周赛最后一题 差分,对称的处理

第 381 场周赛 - 力扣(LeetCode)最后一题3017. 按距离统计房屋对数目 II - 力扣(LeetCode) dijkstra超时了,看了灵神的解题方法力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台,其…

头条文章采集ChatGPT4.0改写软件环境配置教程步骤

大家好,我是淘小白~ 下面给大家整理一下,ChatGPT4.0改写软件环境配置教程 下面是我们拿到的环境配置软件,分别是:117版本的谷歌浏览器,谷歌浏览器驱动,notepad(用于打开config.ini&#xff0c…

计算机网络-物理层基本概念(接口特性 相关概念)

文章目录 总览物理层接口特性星火模型给出的相关概念解释(仅供参考) 总览 求极限传输速率:奈氏准则,香农定理(背景环境不一样) 编码:数据变成数字信号 调制:数字信号变成模拟信号 信…

go和swoole性能比较

开发效率 Go语言是本质上是静态语言,开发效率稍差,但性能更强,更适合底层软件的开发 Swoole使用PHP语言,动态脚本语言,开发效率最佳,更适合应用软件的开发 IO模型 go语言使用单线程eventloop处理IO事件&…

机器学习-numpy

机器学习–numpy Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。 Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。 Numpy使用ndarray对象来…