理解Linux权限(一)

news2025/7/13 22:54:36

理解Linux文件权限

Permission Groups(权限组)

根据权限组划分:每个文件和目录都有3种使用者(用户)

  • ower(所有者) - 所有者的权限仅适用于文件和目录的所有者,不会影响其他用户的操作;
  • group(所属组) - 所属组的权限仅适用于已分配的文件和目录,不会影响其他用户的操作;
  • all users(所有用户) - 所有用户的权限适用于所有用户;

Permission Types(权限种类)

每个文件或目录都有3中基本的权限:

  • read(读) - 此权限授予您打开和读取文件的权限。对目录的读取权限使您能够列出其内容;
  • write(写) - 对目录的权限赋予您添加、删除和重命名目录中存储的文件的权限。考虑一个场景,您必须对文件具有写入权限,但对存储文件的目录没有写入权限。您将能够修改文件内容。但您将无法重命名、移动或从目录中删除该文件;
  • execute(执行) - 在Windows中,可执行程序通常有一个扩展名“.exe”,您可以轻松运行该扩展名。在Unix/Linux中,除非设置了执行权限,否则无法运行程序。如果未设置执行权限,您仍可以查看/修改程序代码(前提是设置了读写权限),但不能运行它;

Viewing the Permissions(查看权限)

在终端上使用指令ls -l 或 ll均可查看当前目录下的文件或目录的权限

如果要查看当前所处目录的权限,可以使用指令ls -l -d 或 ll -d

[hzh@VM-8-3-centos lesson5]$ ls
test.c
// 当前目录下只有test.c一个文件
    
// ls-l 或 ll 查看当前目录下文件或目录的权限
[hzh@VM-8-3-centos lesson5]$ ls -l
total 0
-rw-rw-r-- 1 hzh hzh 0 Nov 14 13:10 test.c
[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-r-- 1 hzh hzh 0 Nov 14 13:10 test.c

// ls -l -d 或 ll -d查看当前目录的权限
[hzh@VM-8-3-centos lesson5]$ ll -d
drwxrwxr-x 2 hzh hzh 4096 Nov 14 13:10 .
[hzh@VM-8-3-centos lesson5]$ ls -l -d
drwxrwxr-x 2 hzh hzh 4096 Nov 14 13:10 .

命令行中的权限显示为:_rwxrwxr-x 2 owner:group

  1. 用户的权限
    • 第一个用下划线标志的字符代表的是一种特殊的权限,该权限可以变化;
    • 接下来的3个字符集(rwx),代表的是owner(拥有者)的权限;可读可写可执行
    • 第二个的3个字符集(rwx),代表的是group(所属组)的权限;可读可写可执行
    • 第三个的3个字符集(r-x),代表的是All Users(所有用户的权限);可读不可写可执行
  2. 接下来的一组数字显示的是该文件或目录的硬链接数;
  3. 最后一部分显示的是owner和group,格式为owner:group;

Modifying the Permissions(更改权限)

在命令行中,可以使用指令chmod来更改文件的权限;chmod意为change mode

有两种更改文件或目录方法:

1. Explicitly Defining Permissions(显式定义权限)

权限组用下列字符来代替:

  • u - Owner
  • g - Group
  • o - Other
  • a - All users

赋值运算符包括:+(plus) 和 - (minus),赋值运算符的使用是用来告诉系统是否需要添加或者是去除特定的权限;

权限种类用下列字符代替:

  • r - Read
  • w - Write
  • x - Excute

在这里插入图片描述

实例

[hzh@VM-8-3-centos lesson5]$ ls
test.c
[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-r-- 1 hzh hzh 0 Nov 14 13:10 test.c
[hzh@VM-8-3-centos lesson5]$ chmod a-rw test.c
[hzh@VM-8-3-centos lesson5]$ ll
total 0
---------- 1 hzh hzh 0 Nov 14 13:10 test.c 
[hzh@VM-8-3-centos lesson5]$ chmod a+rw test.c
[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-rw- 1 hzh hzh 0 Nov 14 13:10 test.c

由上述实例可见,显式定义权限的语法形式为:chmod Permission Groups assignment operator(+/-) filename

2. Using Binary References to Set permissions(使用二进制引用来设置文件权限)

首先需要理解的是:利用二进制引用来设置文件权限,输入是通过输入3个整数来完成的!

举个例子:

chmod 640 filename,这段代码的意思是:owner(所有者)的权限是可读可写,group(所属组)的权限是可读,all other users(其他人)对文件没有任何权限;

第一个数字代表的是Owner(拥有者)的权限,第二个数字代表的是Group(所属组)的权限,最后一个数字代表的是All other users(其他人)的权限;

一个权限组最多只需要3个二进制数即可表示,对应位置如果是0表示没有对应权限,如果是1表示拥有对应的权限;

下面的表格中的数字代表的不同的权限种类:

NumberPermission TypeSymbol
0 (000)No Permission
1 (001)Excute–x
2 (010)Write-w-
3 (011)Write + Excute-wx
4 (100)Readr–
5 (101)Read + Excuter-x
6 (110)Read + Writerw-
7 (111)Read + Write + Excuterwx

3. Owners and Groups(拥有者和所属组)

这里涉及的是如何更改文件的Owner(拥有者)和Group(所属组)

使用chown和chgrp指令即可:

语法:

chown Owner(:Group) filename

chgrp Group filename

如果是普通用户使用上述指令前要在其前面加上sudo进行提权:

举个例子:刚开始的时候文件test.c的拥有者和所属组都是hzh

[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-rw- 1 hzh hzh 0 Nov 14 13:10 test.c
    
// 将Owner和Group全部改成root
[hzh@VM-8-3-centos lesson5]$ sudo chown root:root test.c 
[sudo] password for hzh: 
[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-rw- 1 root root 0 Nov 14 13:10 test.c

// 只将Owner改成hzh
[hzh@VM-8-3-centos lesson5]$ sudo chown hzh test.c 
[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-rw- 1 hzh root 0 Nov 14 13:10 test.c

// [hzh@VM-8-3-centos lesson5]$ sudo chgrp hzh test.c 
[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-rw- 1 hzh hzh 0 Nov 14 13:10 test.c

Linux文件类型

[hzh@VM-8-3-centos lesson5]$ ll
total 0
-rw-rw-rw- 1 hzh hzh 0 Nov 14 13:10 test.c

-rw-rw-rw-,该段字符中的第一个代表的是Linux中的文件类型:

这里仅列出比较重要的文件类型

字符代表的意义
-普通文件(源代码,库文件,可执行程序,压缩包…)
d目录文件

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

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

相关文章

Transwarp Inceptor介绍

Transwarp Inceptor是星环科技推出的用于数据仓库和交互式分析的大数据平台软件,它基于Hadoop和Spark技术平台打造,加上自主开发的创新功能组件,有效的解决了企业级大数据数据处理和分析的各种技术难题,帮助企业快速的构建和推广数…

进化吧,MySQL锁!无锁->偏向锁->轻量级锁->重量级锁(请自动脑补数码宝贝进化音)

写在前边 走到哪都有各种琐事,在MySQL中咱已经聊透了各种琐事 ->MySQL锁机制&&事务,今天来看看Java里边的锁升级过程,以及各种锁之间的比较,悲观乐观,粗化消除~ 四种锁的Markword 优先程度 偏向锁->轻量…

【FPGA】FPGA实现IIC协议读写EEPROM(三) ----- 汇总篇

IIC协议读写EEPROM一、功能分析/模块划分二、状态转移图1、EEPROM读写控制状态转移图2、IIC接口驱动状态转移图三、工程代码实现1、顶层模块2、EEPROM读写控制模块3、IIC接口驱动模块4、参数配置5、其他模块四、仿真测试五、上板验证写在前面 FPGA实现IIC协议读写EEPROM相关文章…

【附源码】计算机毕业设计JAVA教学辅助系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

【Qt】控件探幽——QWidget

注1:本系列文章使用的Qt版本为Qt 6.3.1 注2:本系列文章常规情况下不会直接贴出源码供复制,都以图片形式展示。所有代码,自己动手写一写,记忆更深刻。 本文目录探索QWidget1、ui文件最后会变成什么?2、如何改…

在 OpenHarmony 轻量设备开发应用

本文档旨在讲解新建 Helloworld 项目步骤、固件包烧录到 BES2600WM 开发板、实现 js 和 C 代码的通讯。该 Demo 重点体现的是 OpenAtom OpenHarmony(以下简称“OpenHarmony”) 3.1 Beta 系统轻量设备 js 和 C 的交互能力, 效果如图 &#xf…

dpdk PMD

PMD是Poll Mode Driver的缩写,即基于用户态的轮询机制的驱动 在不考虑vfio的情况下,PMD的结构图如下 虽然PMD是在用户态实现设备驱动,但还是依赖于内核提供的策略。其中uio模块,是内核提供的用户态驱动框架,而igb_uio…

深度探讨react-hooks实现原理

react hooks 实现 Hooks 解决了什么问题 在 React 的设计哲学中,简单的来说可以用下面这条公式来表示: UI f(data)等号的左边时 UI 代表的最终画出来的界面;等号的右边是一个函数,也就是我们写的 React 相关的代码&#xff1b…

最新最全面的Spring详解(一)——Spring概述与IOC容器

前言 本文为 【Spring】Spring概述与IOC容器 相关知识,下边将对Spring概述,IOC容器(包括:IOC概述、配置元数据、容器实例化与使用、Bean的概述、依赖注入 Dependency Injection、Bean 作用范围(作用域)、更…

计算机网络(二)

三、数据链路层 3.1 数据链路层概述 数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。 该层的作用包括:物理地址寻址…

安装Redis

一、Windows安装 1、下载安装包 2、下载完毕得到压缩包 3、解压到自己电脑上的环境目录 4、开启redis,双击运行服务 5、使用redis客户端来连接redis 注意:Window下使用确实简单,但是Redis推荐我们使用Linux去开发使用! 二、Linux安装 1、官网下载…

everything常用搜索命令

参考:玩转Everything(三) https://baijiahao.baidu.com/s?id1735662355311796969&wfrspider&forpc 可右键菜单显示要显示的内容 指定目录搜索 例:e: 文件名 (注意加空格) 多目录内搜索 例&#x…

ModStartCMS v5.2.0 字段扩展支持,SiteMap增强

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰…

多肽914910-73-9:血管紧张素Angiotensin(1-12)(mouse, rat)

血管紧张素 (1-12) 是局部生成血管紧张素的潜在前体。它在广泛的器官和组织中表达,包括小肠、脾脏、肝脏、肾脏和心脏。卡托普利和 CV-11974(一种血管紧张素 II I 型受体拮抗剂)可消除对静脉输注血管紧张素 (1-12) 的血管收缩和升压反应。编号…

【Linux详解】——环境变量

📖 前言:本期将介绍Linux下的环境变量 目录🕒 1. 基本概念🕘 1.1 常见环境变量🕘 1.2 查看环境变量方法🕘 1.3 其他指令:🕘 1.4 环境变量的来源🕒 2. 环境变量的操作&…

2022亚太杯建模A题思路分析 小美赛数学建模 A题思路

一、 2022亚太杯大学生数学建模竞赛 注册截止日期:北京时间2022年11月23日(星期三)中午12点 竞赛开始时间:北京时间2022年11月24日(星期四)上午6点 竞赛结束时间:北京时间2022年11月28日&#…

OpenCV实战(2)——OpenCV核心数据结构

OpenCV实战(2)——OpenCV核心数据结构0. 前言1. cv::Mat 数据结构1.1 cv::Mat 简介1.2 cv::Mat 属性1.3 完整代码示例2. 探索 cv::Mat 数据结构2.1 cv::Mat 对象的创建2.2 OpenCV 输入和输出数组小结系列链接0. 前言 cv::Mat 类是用于保存图像(以及其他…

2022 SPSSPRO杯A|B|C题全网最全解题思路+数据分享

一,认证杯数学建模2022 ABC题干分析 2022年第十五届“SPSSPRO杯”数学中国数学建模网络挑战赛 2022认证杯数学中国数学建模网络挑战赛 认证杯这次叫spssrpo 二,A题 人员的紧急疏散 在过去的几十年里,由于大规模集会活动的数量和规模的增加…

大数据采集工具与采集业务划分

目录1- FlumeAgentSourceChannelSinkEvent2- Fluentd3- Logstash4- Chukwa5- Scribe6- Splunk7- Scrapy8- Kafka9- Datax10-日志采集11-数据源数据同步1- Flume https://flume.apache.org/ Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志…

代码随想录56——动态规划:583两个字符串的删除操作、72编辑距离

文章目录1.583两个字符串的删除操作1.1.题目1.2.解答2.72编辑距离2.1.题目2.2.解答1.583两个字符串的删除操作 参考:代码随想录,583两个字符串的删除操作;力扣题目链接 1.1.题目 1.2.解答 本题和 动态规划:115.不同的子序列 相…