Shell命令与Linux操作系统:深入理解其原理和功能(2/2)

news2024/11/16 15:49:32

 

在当今数字化时代,操作系统的安全性和稳定性对于个人用户和企业都至关重要。Linux,作为一个广泛使用的操作系统,其强大的文件权限系统是保护系统安全的核心机制之一。无论是在服务器管理、软件开发还是日常使用中,有效地管理和理解Linux的文件权限对于保障系统的安全和性能至关重要。

Linux文件权限系统的设计思想与Windows等其他操作系统有显著不同。它基于精细的权限控制机制,允许用户对文件和目录进行详尽的访问控制。这种灵活性和精确性使得Linux系统能够在多用户环境中提供高度的安全保障。

然而,Linux文件权限的复杂性也带来了一定的学习挑战。新手用户和甚至一些经验丰富的用户也可能在理解和应用这些权限设置上遇到困难。错误的权限设置可能导致安全漏洞,或阻碍用户有效地执行日常任务。

本文旨在提供一个全面且易于理解的Linux文件权限系统指南。我们将从最基本的文件类型和权限字符讲起,详细解释权限的结构和修改方法,并探讨目录权限的特殊情况及粘滞位的概念。无论你是Linux的新手还是希望深化理解的资深用户,这篇文章都将是你宝贵的资源。

通过这篇文章,我们希望使读者能够更加自信和有效地在Linux环境下管理文件权限,从而提升整个系统的安全性和效率。

基本概念

文件类型和权限

  • 文件类型:Linux中文件类型用单个字符表示,常见的有-(普通文件)和d(目录文件)。
  • 权限字符:Linux文件权限通过r(读)、w(写)、x(执行)三种基本权限表示,这九个字符分为三组,分别代表文件的拥有者(owner)、所属组(group)和其他用户(others)。

权限的结构

例如,rw-rw-r--表示文件的拥有者和所属组用户拥有读写权限,而其他用户只有读权限。

首先我们在每个文件开头都可以看到这样的字符

drwxrwxr-x    或    -rw-rw-r -- 

 其实我们数一下就可以知道这是10个字符 而开头只会有两种类型   -   和  d

这就涉及到文件的类型   -  :普通文件   d: 目录文件

那么剩下就有就个字符  文件的权限属性一般有三种

这九个字符分为三部分,分别是:拥有者,所属组, other

所以可以得出  权限 = 用户角色+文件权限属性

 我们每三个一组,拿上图举例: 去掉开头的-后 还剩余九个字符 为 rw-rw-r--  

33为一组,我们先看第一组,rw-   

第一个字符:是否具有读权限

第二个字符:是否具有写权限

第三个字符:是否具有可执行权限

所以他代表拥有者只有读和写的功能,不包括可执行权限

接下来我们从四方面进行讲解

权限修改方法

快速掌握修改权限的方法

  1. 使用chmod命令:这是修改文件访问权限最常用的方法。
    • 基本格式:chmod [参数] 权限 文件名
    • 用户表示符:u(拥有者)、g(所属组)、o(其他用户)、a(所有用户)
    • 权限操作:+(增加权限)、-(取消权限)、=(设置特定权限)

     2.  使用chgrp修改所属组

  • 基本格式:chgrp [参数] 用户组名 文件名

功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和 root 才可以改变文件的权限
chmod
① 用户表示符 +/-= 权限字符
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
用户符号:  
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户

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

a:文件的拥有者

b:root

首先我们修改user的权限

经过修改后,r权限已经被移除  同理 用 + 或  - 就可以修改 所属组是  g + 或 g -  

other就是  o+  或 o-

若要同时修改,在u-后输入,分隔即可

 给所有人加上可以用 a  代表all

  

2.文件类型和权限区分

当我们关掉所有权限后,发现任何操作都会显示 Permission denied  权限被拒绝

  

可如果我们切换到root,可以发现,root相对于这个文件是other的身份,但是他可以执行任何操作

所以我们可以得出:root账户不受权限约束的!

 权限存在的意义:

保证普通用户的文件的一般安全性

我们继续研究还可以发现:linux不同于windows的是linux对用户身份进行识别只识别一次,当他识别成功用户与文件拥有者时,就不会继续匹配了。所以也就是说,即使我们的user在组里有可读写权限,但user本身没有rw权限,那么最终他也不会拥有读写权限,而windows恰恰相反,win的ntfs权限是叠加的。

我们还可以通过修改拥有者和修改所属组来达到我们想要的权限预期效果

b)chown
功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名
实例:
 chown user1 f1
chown -R user1 filegroup1
c)chgrp
功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组
实例chgrp users /abc/f2

3.修改权限的第二套做法

                

sudo提权,给别人,但我们一般运行不了 ,建议直接使用su 切换到root 再赋予权限

但为什么没有修改other的指令呢?因为不需要,因为我们将user改了 group改了 other自然而然就变了

 八进制修改法

chmod 664 /home/abc.txt  比如批量给所有人赋予所有权限就是 chmod 777 111.txt

4.文件类型

Windows是如何区分文件类型的呢?

:通过后缀名

而linux不通过后缀区分文件类型(不是说linux不用后缀名)

当我们写了一份a,c后,我们可以发现,我们后缀无论改成什么都能运行 ,,/a/exe  ./a.txt   ./a.c都能运行

 那我么用什么来区分呢?

:ls-l 第一个属性列

-代表普通文件,文本文件,可执行程序,库等都叫做普通文件

d:目录文件

可是如果用gcc编译发现更改后缀就无法编译 linux不区分文件类型不代表linux工具不用后缀

我们在linux对于文件后缀的态度:

可以使用!

如何理解X权限?

可执行权限 ---    可执行

能执行 = 具有可执行权限+本身是一个可执行文件

所以仅仅具有可执行权限不代表能执行。

可执行不等于能执行

唐钮不等式秒了


目录的权限

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

可读权限 : 如果目录没有可读权限 , 则无法用 ls 等命令查看目录中的文件内容 .
可写权限 : 如果目录没有可写权限 , 则无法在目录中创建文件 , 也无法在目录中删除文件 .
umask:权限掩码
于是 , 问题来了 ~~
换句话来讲 , 就是只要用户具有目录的写权限 , 用户就可以删除目录中的文件 , 而不论这个用户是否有这个文件的写权限.
这好像不太科学啊 , 我张三创建的一个文件 , 凭什么被你李四可以删掉 ?
[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld 
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"?y
[litao@localhost ~]$ exit 
logout
为了解决这个不科学的问题 , Linux 引入了粘滞位的概念 
[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作
当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
关于权限的总结
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目 , 即使目录仍然有 -r 读权限(这
个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以 cd 进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls 命令,但仍然没有权限读出目录下的文档

通过本文的探讨,我们得以深入了解Linux文件权限系统的核心原理和实践应用。这一系统不仅是Linux安全架构的基石,也是其灵活性和强大功能的源泉。理解和妥善运用这些权限机制,对于确保Linux环境中的数据安全和系统稳定性至关重要。

我们探讨了从文件类型的辨识、权限的基本结构,到权限修改方法的多样性,以及目录权限和粘滞位等高级概念。这些知识的掌握,将使我们在日常的Linux使用中更加得心应手,无论是进行系统管理、软件开发还是处理日常任务。

Linux文件权限的学习和应用是一个持续的过程。本文仅仅是这一广阔领域的入门导引。随着技术的不断进步和个人经验的积累,总会有新的挑战和发现。因此,我们鼓励读者持续学习,不断探索Linux这个强大工具的更多可能。

最后,我们希望这篇文章能够成为你在Linux文件权限管理旅程中的一盏明灯,指引你顺利地驾驭Linux系统,发挥其最大的潜力。记住,掌握Linux文件权限,就是掌握了保护你的系统和数据的关键

 

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

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

相关文章

scons_交叉编译arm64_sysroot基于根文件rootfs编译方法

文章目录 1.问题现象2.环境变量3.实例1:交编译arm64 hello.c解决方法1: 指定rootfs下的include头文件解决方法2: 下载开源arm64-linux-gnu-gcc小结 4.交叉编译依赖第3方库1.前言2.小知识: gcc默认搜索与支持的库3.实例: 交叉编译依赖ROS的程序gcc/g 编译流程gcc/g 链接流程 5.遇…

阿里云双11活动:如何通过客户端连接linux服务器?配置入门详解

前言 最近双11活动,发现阿里云有服务器活动,就买了一个,今天主要给大家介绍下,如何通过通过客户端进行连接linux服务器后,进行简单的操作。 配置服务器信息 打开浏览器登录到阿里云服务器页面上,找到个人…

uni-app/vue封装etc车牌照输入,获取键盘按键键值

先看下效果如下&#xff1a; 动态图如下 uniapp的keyup获取不到keyCode和compositionstart&#xff0c;compositionend&#xff0c;所以需要监听input节点的keyup事件&#xff0c; 思路以及代码如下&#xff1a; 1.将每一个字符用文本框输入&#xff0c;代码如下 <view …

ClickHouse基础知识(二):ClickHouse 安装教程

1. 准备工作 1.1 确定防火墙处于关闭状态 1.2 CentOS 取消打开文件数限制 &#xff08;1&#xff09;在 hadoop101 的 /etc/security/limits.conf 文件的末尾加入以下内容 sudo vim /etc/security/limits.conf&#xff08;2&#xff09;在 hadoop101 的/etc/security/limits.…

64.乐理基础-打拍子-前八后十六、前十六后八拍子

前置内容&#xff1a;63.乐理基础-打拍子-四十六-CSDN博客 前八后十六指的是前半拍是一个八分音符&#xff0c;后半怕是两个十六分音符的节奏型&#xff0c;如图1。 前十六后八刚好就与前八后十六反着&#xff0c;如图3。 图1&#xff1a;在以四分音符为一拍的时候这三个音符加…

Android下载gradle失败解决方法

1、在gradle-wrapper.properties文件中查看自己需要下载gradle什么版本的包和zip路径&#xff08;wrapper/dists&#xff09;。 2、在setting中查看Gradle的保存路径&#xff0c;如下图&#xff1a;C:/Users/Administrator/.gradle&#xff0c;加上第一步的zip路径得到下载grad…

chcp 65001

chcp 65001 DOS,BAT,CMD乱码 转UTF-8&#xff0c;就不会汉字乱码了 936 GBK 65001 UTF-8

C语言中关于if else的理解

if else我们可以理解为 if(条件1) //如果条件1成立 语句1&#xff1b; //执行语句1 else //如果条件1不成立 语句2; //执行语句2 这是一个经典的if els…

Vue Echarts 多折线图只有一条X轴(合并X轴数据并去重排序) - 附完整示例

echarts&#xff1a;一个基于 JavaScript 的开源可视化图表库。 目录 效果 一、介绍 1、官方文档&#xff1a;Apache ECharts 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 echarts 2、指定容器并设置容器宽高 3、数据处理&am…

Word中插入mathtype的行内公式显示不全,设置行距,最小值

Word中插入mathtype的行内公式显示不全 如下图&#xff1a;公式上下被遮住 解决方式&#xff1a; 设置所在段落的行距&#xff1a;最小值--xx磅。同时取消勾选 “如果定义了文档网格&#xff0c;则对齐到网格” 处理后效果&#xff1a;

电子科大软件架构设计——期末复习题集

文章目录 系统分析与设计概述面向对象建模语言系统规划系统需求分析系统架构设计软件建模详细设计与设计模式用户界面设计 系统分析与设计概述 1&#xff0e;下面哪个不是信息系统利益相关者?&#xff08;D) A&#xff0e;客户B&#xff0e;用户 C.开发人员D&#xff0e;监理…

免费SSL证书申请入口

免费SSL证书的优势 a. 低成本 免费SSL证书相对于其他类型的SSL证书来说&#xff0c;无需支付昂贵的费用。对于个人网站、小型企业或预算有限的组织而言&#xff0c;免费SSL证书是一种经济实惠的选择。 b. 提高搜索引擎排名 搜索引擎算法中&#xff0c;对于使用HTTPS协议的网…

Solana 生态铭文跨链桥 Sobit 是何神圣?其场外白名单已达到1200U

在短暂的沉寂&#xff0c;在与 Solana 手机 Saga 联合生态 Meme 币 Bonk 掀起一波 meme 浪潮&#xff0c;以及GPU 计算网路Render network 宣布将从公链Polygon迁往Solana 后&#xff0c;Solana 生态再次迎来爆发。随着 SOL 代币在 12 月暴涨&#xff0c;SOL 也在市值上超越了 …

性能测试-jemeter:安装 / 基础使用

一、理解jemeter 官网-Apache JMeter-Apache JMeter™ JMeter是一款开源的性能测试工具&#xff0c;主要用于模拟大量用户并发访问目标服务器&#xff0c;以评估服务器的性能和稳定性。 JMeter可以执行以下任务序号用途描述1性能测试通过模拟多个用户在同一时间对服务器进行…

python风格规范之missing whitespace after

python风格规范之missing whitespace after 规范错误/警告描述规范错误描述(示例)规范错误认知正确示例 规范错误/警告描述 PEP 8: E231 missing whitespace after [mark]规范错误描述(示例) 规范错误认知 上述规范错误表示"[mark]"后面没有添加空格 。错误示例如下…

第一届能源电子产业创新大赛太阳能光伏赛道在京顺利完成初赛评审

近日&#xff0c;第一届能源电子产业创新大赛太阳能光伏赛道初赛在北京顺利举行。本次太阳能光伏赛道赛事由工业和信息化部产业发展促进中心、宜宾市人民政府主办&#xff0c;宜宾市经济和信息化局、宜宾高新技术产业园区承办&#xff0c;中国国检测试控股集团股份有限公司协办…

C语言之字符串处理

目录 字符串长度 显示字符串 数字字符的出现次数 大小写字符转换 字符串数组的参数传递 非字符串的字符数组 目前我们所学习到的是围绕字符串的处理&#xff0c;仅仅是生成字符串、读取并显示字符串&#xff0c;下面我学习更加灵活处理字符串的方式。 字符串长度 我们来看…

MR实战:统计总分与平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建成绩映射器类5、创建成绩驱动器类6、启…

单词搜索 II[困难]

一、题目 给定一个m x n二维字符网格board和一个单词&#xff08;字符串&#xff09;列表words&#xff0c; 返回所有二维网格上的单词。单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同…

面试官:并发和并行的区别

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…