【Linux系统编程】第七弹---权限管理操作(上)

 ✨个人主页: 熬夜学编程的小林

💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】【Linux系统编程】

目录

1、修改文件权限的做法(一)

2、有无权限的表现

总结


上一弹我们讲解了Linux权限概念相关的知识,但是我们只知道有什么权限,如何查看权限,但是根据我们常识可以知道,限制是可以解除和添加的,因此权限也不例外,也可以进行修改操作,这一弹我们就详细讲解权限的管理的相关操作

1、修改文件权限的做法(一)

一个文件的权限,谁能够修改呢?

在Linux中,只有文件的拥有者和root能够修改文件的权限。


1.chmod 指令

语法:

chmod [选项] 权限 文件名


功能:

改变文件或目录的访问权限,用它控制文件或目录的访问权限。


常用选项:

-R :递归处理,将指定目录下的所有文件及子目录一并处理


用户表示符+/-=权限字符

+ : 向权限范围增加权限代号所表示的权限
- :  向权限范围取消权限代号所表示的权限
= : 向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组
o:其它用户
a:所有用户

举例:

[lin@VMCentos7 ~]$ touch 1.txt  # 创建一个文件
[lin@VMCentos7 ~]$ ll
-rw-rw-r-- 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chmod u+x 1.txt  # 给1.txt文件的拥有者增加x(执行)权限
[lin@VMCentos7 ~]$ ll # 查看文件详细信息
-rwxrw-r-- 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chmod u-rw 1.txt  # 给1.txt文件的拥有者取消rw(读写)权限 可有对个顺序,且与顺序无关
[lin@VMCentos7 ~]$ chmod g-r 1.txt   # 给1.txt文件的所属组取消r(读)权限
[lin@VMCentos7 ~]$ ll
---x-w-r-- 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chmod o+x 1.txt   # 给1.txt文件的其他用户添加x(执行)权限
[lin@VMCentos7 ~]$ ll
---x-w-r-x 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chmod a+r 1.txt   # 给1.txt文件的所有用户添加r(读)权限
[lin@VMCentos7 ~]$ ll
-r-xrw-r-x 1 lin lin 0 Mar 27 18:15 1.txt

 注意:选项还可以用逗号隔开,分别增加/取消权限

[lin@VMCentos7 ~]$ ll
-r-xrw-r-x 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chmod u+w,g+x,o+w 1.txt # 给1.txt文件拥有者增加w权限,所属组增加x权限,其他用户添加w权限
[lin@VMCentos7 ~]$ ll
-rwxrwxrwx 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chmod u-rw,o-wx 1.txt
[lin@VMCentos7 ~]$ ll
---xrwxr-- 1 lin lin 0 Mar 27 18:15 1.txt


 

2.chown 指令

语法:

chown [选项] 用户名 文件名                  # 仅更改拥有者

chown [选项] 拥有者:所属组 文件名      # 更改拥有者和所属组


功能:

更改文件或目录的拥有者和所属组。

常见选项:

-R:递归处理,将指定目录下的所有文件及子目录一并处理

注意:普通用户不能强制修改拥有者,需使用root权限修改,即sudo。

普通用户举例:

[lin@VMCentos7 ~]$ ll
-rwxrwxr-- 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ chown jkl 1.txt  # 将1.txt文件的拥有者改为jkl
chown: changing ownership of '1.txt': Operation not permitted  # 普通用户不允许强制修改拥有者,解决办法是用root权限
[lin@VMCentos7 ~]$ chown xiao 1.txt # 将1.txt文件的拥有者改为xiao 但是没有xiao这个用户,因此报错
chown: invalid user: ‘xiao’# 解决办法:
[lin@VMCentos7 ~]$ ll
-rwxrwxr-- 1 lin lin 0 Mar 27 18:15 1.txt
[lin@VMCentos7 ~]$ sudo chown jkl 1.txt # 使用sudo提权 
[sudo] password for lin:  # 输入用户密码
lin is not in the sudoers file.  This incident will be reported. # 说明sudo没有配置,不能使用,此时我们用一个配置的用户来演示[jkl@VMCentos7 linux-learning-warehouse]$ ll
-rw-rw-r-- 1 jkl jkl     0 Mar 27 19:19 1.txt # 当前拥有者为jkl
[jkl@VMCentos7 linux-learning-warehouse]$ sudo chown lin 1.txt # 将拥有者修改成lin
[sudo] password for jkl: 
[jkl@VMCentos7 linux-learning-warehouse]$ ll
-rw-rw-r-- 1 lin jkl     0 Mar 27 19:19 1.txt # 拥有者确实修改成了lin

root用户举例:

[root@VMCentos7 ~]# ll
-rw-r--r-- 1 root root    0 Mar 21 00:39 1.txt
[root@VMCentos7 ~]# chown lin 1.txt # 将拥有者改成lin
[root@VMCentos7 ~]# ll
-rw-r--r-- 1 lin  root    0 Mar 21 00:39 1.txt # 拥有者确实被改成lin

3.chgrp 指令

格式:

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


功能:

修改文件或目录的所属组



常用选项:

-R :递归修改文件或目录的所属组

注意:普通用户不能强制修改所属组,需使用root权限修改,即sudo。

普通用户举例:

[jkl@VMCentos7 linux-learning-warehouse]$ ll
-rw-rw-r-- 1 lin jkl     0 Mar 27 19:19 1.txt  # 所属组为jkl
[jkl@VMCentos7 linux-learning-warehouse]$ chgrp lin 1.txt   # 普通用户不允许修改所属组
chgrp: changing group of '1.txt': Operation not permitted 
[jkl@VMCentos7 linux-learning-warehouse]$ sudo chgrp lin 1.txt # 使用root权限修改所属组
[sudo] password for jkl: 
[jkl@VMCentos7 linux-learning-warehouse]$ ll
-rw-rw-r-- 1 lin lin     0 Mar 27 19:19 1.txt  # 所属组修改成lin

同时修改拥有者和所属组举例(root演示):

[root@VMCentos7 ~]# ll
-rw-r--r-- 1 root root    0 Mar 21 00:39 2.txt # 拥有者所属组均为root
[root@VMCentos7 ~]# chown lin:jkl 2.txt # 将拥有者改为lin 所属组改为jkl
[root@VMCentos7 ~]# ll
-rw-r--r-- 1 lin  jkl     0 Mar 21 00:39 2.txt # 修改成功

2、有无权限的表现

拥有者满足举例:

[lin@VMCentos7 ~]$ ll
total 0
---------- 1 lin lin 0 Mar 27 18:15 1.txt # 将1.txt的所有权限改为-,即没有任何权限
[lin@VMCentos7 ~]$ cat 1.txt  # 以lin用户查看1.txt文件,虽然拥有者为lin,但是没有读权限,因此不能查看该文件
cat: 1.txt: Permission denied
[lin@VMCentos7 ~]$ echo "hello Linux" > 1.txt # 没有写权限因此不允许给文件写入数据
-bash: 1.txt: Permission denied
[lin@VMCentos7 ~]$ ./1.txt   # 没有可执行权限
-bash: ./1.txt: Permission denied

 所属组满足举例:

[lin@VMCentos7 ~]$ ll
total 0
----rwx--- 1 jkl lin 0 Mar 27 18:15 1.txt # 拥有者为jkl 所属组为lin
[lin@VMCentos7 ~]$ cat 1.txt # 所属组为lin 且有读权限 因此可以查看文件
[lin@VMCentos7 ~]$ echo "hello Linux" > 1.txt # 所属组为lin 且有写权限 因此可以将数据写入文件
[lin@VMCentos7 ~]$ cat 1.txt
hello Linux[lin@VMCentos7 ~]$ ll
total 4
----rwx--- 1 lin lin 12 Mar 27 19:51 1.txt # 拥有者所属组均为jkl 
[lin@VMCentos7 ~]$ cat 1.txt   # 所属组有读权限为什么不能查看文件呢?
cat: 1.txt: Permission denied

上述两大段命令中,为什么拥有者均有读写执行权限,但是第二种情况却不能读写执行操作呢?

因为Linux对用户的识别只有一次

第一种情况:拥有者为jkl,拥有者于当前用户不匹配,因此会去匹配所属组,所属组与当前用户匹配,因此执行所属组的权限,所以可以执行读写执行操作。

第二种情况:拥有者为lin,拥有者于当前用户匹配,因此执行拥有者的权限,所以不可以执行读写执行操作。

总结


本篇博客就结束啦,谢谢大家的观看,如果公主少年们有好的建议可以留言喔,谢谢大家啦!

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

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

相关文章

相机1:如何系相机肩带

开始解锁新领域,多看几个相关视频,大概也就可以掌握一两种系相机肩带的方法,本质就是新知识的学习过程,不可能等着或者期待出来一个完整的教程,一步一步自己去探索,自己去查资料。 目录 总述 第一步&#…

DSP系统的设计过程与选型

DSP的设计步骤分几个阶段,应用系统的设计过程如图所示。 技术指标的确定 器件的选型原则 其他因素的考虑

RTT学习 MQTT

MQTT背景应用 MQTT是机器对机器(M2M)/物联网(IoT)连接协议,它是专为受限设备和低带宽、高延迟或不可靠的网络而设计的,是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯…

【C语言】每日一题,快速提升(10)!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 题目:圣诞树 输入: 1输出: * * * * * **说明: 输入: 2输出: * * * * * * * …

【Elasticsearch】Elasticsearch 从入门到精通(一):基本介绍

《Elasticsearch 从入门到精通》共包含以下 2 2 2 篇文章: Elasticsearch 从入门到精通(一):基本介绍Elasticsearch 从入门到精通(二):基础使用 😊 如果您觉得这篇文章有用 ✔️ 的…

FIR补偿滤波器——matlab的FDA实现

输入采样频率:192KHz 抽取倍数:2 通带截至频率:20KHz 通带衰减:0.1dB 阻带衰减:120dB 在更多选项那里,设置c为0.5,代表抽取倍数为1/c,p设置为4,代表级联阶数。FIR补偿…

3.SpringCloud版本

1.SpringCloud与SpringBoot之间版本对应 2.服务拆分的注意事项 1.不同微服务,不要重复开发相同业务。 2.微服务的数据独立,每个微服务都有自己独立的数据库,不要访问其他微服务的数据库。 3.微服务可以将自己的的业务暴露为接口&#xff…

中电金信:向“新”而行——探索融合架构的项目管理在保险行业的应用

近年来,险企在政策推动、市场牵引、自身发展、新技术应用日趋成熟等内外部因素的驱动下,积极投身到数字化转型的浪潮中。在拜访各类保险客户和合作项目的过程中,我们发现不少险企在数字化转型中或多或少都面临着战略如何落地、技术如何承接和…

国外问卷调查如何做?需要借助海外住宅IP吗?

在数字化时代,国外问卷调查不仅是了解市场需求的重要手段,还成为了一项能够赚取额外收入的方式。随着全球范围内消费者行为的多样化,各类企业和机构越来越需要了解不同地区的用户观点和偏好,以优化产品和服务。 一、国外问卷调查…

【HarmonyOS】Stage 模型 - 基本概念

一、项目结构 如图1所示: 图1 从项目结构来看,这个应用的内部包含了一个子模块叫 entry,模块是应用的基本功能单元,它里面包含源代码、资源、配置文件等。 像这样的模块在应用内部可以创建很多。但模块整体来讲就分成两大类&am…

Ghost Buster Pro for Mac:强大的系统优化工具

Ghost Buster Pro for Mac是一款功能强大的系统优化工具,专为Mac用户设计,旨在提供全方位的系统清理、优化和维护服务。 Ghost Buster Pro for Mac v3.2.5激活版下载 这款软件拥有出色的垃圾清理能力,能够深度扫描并清除Mac上的无效目录、文件…

(C++) 树状数组

目录 一、介绍 二、一维树状数组 2.1 区间长度 2.2 前驱和后继 2.3 查询前缀和 2.4 点更新 三、一维数组的实现 3.1 区间长度函数 3.2 前缀和 3.3 插入/更新 3.4 封装成类 一、介绍 树状数组(Binary Indexed Tree,BIT),又称为 …

基于MLP算法实现交通流量预测(Pytorch版)

在海量的城市数据中,交通流量数据无疑是揭示城市运行脉络、洞察出行规律的关键要素之一。实时且精准的交通流量预测不仅能为交通规划者提供科学决策依据,助力提升道路使用效率、缓解交通拥堵,还能为公众出行提供参考,实现个性化导…

【软件测试】认识测试|测试岗位|软件测试和开发的区别|优秀的测试人员需要具备的素质

一、什么是测试 测试在⽣活中处处可⻅ 1.生活中的测试场景 案例⼀:对某款购物软件进⾏测试 *启动测试:点击软件图标,测试软件是否可以正常打开 搜索测试:点击输入框,输入关键词,点击搜索 商品测试&#…

Web3革命:区块链如何重塑互联网

引言 互联网的发展已经深刻地改变了我们的生活方式,而现在,Web3和区块链技术正在为我们提供一个全新的数字世界的视角。本文将带你深入了解Web3的核心概念、技术特性以及它如何正在重塑我们的互联网体验。 从Web1.0到Web3:数字革命的演进 W…

羊大师分析,夏季羊奶的适合人群有哪些?

羊大师分析,夏季羊奶的适合人群有哪些? 夏季羊奶的适合人群相当广泛,主要包括以下几类人群: 生长发育中的孩子:羊奶富含营养,特别是蛋白质和矿物质,对孩子的生长发育有积极的促进作用。 中老年…

谈谈mysql中的各个关键字

1.为什么学习mysql mysql是当今最主流且开放源码的关系型数据库,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低…

电商巨头亚马逊公布新算法!或将颠覆跨境选品风向…

亚马逊每一次算法的变动,都会牵扯到无数卖家的利益。电商巨头亚马逊发布了一则报告,正式公布了一个名为“COSMO”的新算法。该算法全称为“亚马逊大型电商常识知识生成与服务系统”,顾名思义,就是利用大量语言模型训练机器&#x…

学习c语音的自我感受

因为是自学,所以走过不少弯路。去年,受知乎“python性能弱”风潮的影响,学过go,rust。 在学习这些新语言的时候,由衷感受到,或是本身侧重方向的原因(如go侧重服务器),或是语言太新不…

【面试经典 150 | 数组】最长公共前缀

文章目录 写在前面Tag题目来源解题思路方法一:横向扫描方法二:纵向扫描方法三:分治 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主&#x…