Linux文件与目录权限基础

上一章学习了Linux用户与组的概念,以及创建用户和组,修改信息等,这次需要将用户应用在实际中,Linux系统中一切皆文件,文件也是基于用户进行权限管理的,因此需要了解文件与目录的权限管理基础。

一、文件与目录权限基础

1.1、文件的权限

在实际中我们通过ls命令,ls是list的意思,添加选项参数查询文件与目录的详细信息。

[root@localhost ~]# ls -la
总用量 3622728
dr-xr-x---. 13 root root      4096 12月 18 14:26 .
dr-xr-xr-x. 19 root root       268 12月 18 13:21 ..
drwxr-xr-x   6 root root       269 10月 24 16:59 alexanderzobnin-zabbix-app
-rw-------.  1 root root      1811 8月  27 2022 anaconda-ks.cfg
-rw-r--r--.  1 root root       176 5月  11 2019 .bashrc
drwx------   3 root root        17 12月 29 2022 .cache
-rw-r--r--.  1 root root       100 5月  11 2019 .cshrc
-rw-r--r--   1 root root     42910 10月 24 14:11 defaults.ini
drwx------   3 root root        20 12月 21 2022 .docker
-rw-------   1 root root        28 12月 18 14:26 .lesshst
-rw-r--r--   1 root root   1127290 9月   5 09:25 ModSecurity-3-master.zip
-rw-r--r--   1 root root     34895 5月  21 2022 modsecurity-nginx-v1.0.3.tar.gz
drwxrwxr-x  12 keli keli      4096 9月   5 14:01 modsecurity-v3.0.10
lrwxrwxrwx   1 root root           3 9月  22 2021  vimdiff -> vim
每一列的意思分别如下:
[文件类型与权限][链接][拥有者][用户组][文件大小][修改日期][文件名称]

1、[文件类型与权限],每个文件第一列由十个字符构成,第一列显示文件、目录、链接文件类型,-为文件,d为目录,l为链接文件,类似windows的快捷方式。

文件权限格式为[rwx][rwx][rwx],9个字符分为3段,每段分为r读取,w编辑,x执行,第一段为文件拥有者权限,第二段为用户组成员权限,第三段为其他人的权限,如果没有权限使用-代表。

示例分析:

# rwx字符位置是固定的,没有对应的权限使用-字符表示
-rw-r--r--.  1 root root       176 5月  11 2019 .bashrc
- :表示这是一个文件
rw- :表示root用户有读取和编辑的权限,没有执行的权限,其实root有权对所有文件进行设置权限
r--:表示root用户组的其他人只有查看的权限
r--:除了root和root组的成员,其他人也能查看

2、[链接]表示下级链接的文件,如果是目录代表目录里面的文件和子目录

3、[拥有者]表示该文件的所有者

4、[用户组]表示该文件或目录所属的用户组

5、[文件大小]表示文件或者目录的大小,可以通过ls选项显示不同单位查看,K,M,G等

6、[修改日期]表示或者目录的最后修改日期

7、[文件名称]文件或目录的名称

文件的权限为:

  • r:可以通过ls查看到该文件
  • w:可以写入,编辑文件
  • x:可以执行该文件,涉及到文件类型后面讲解,如果是文本类型文件不需要x权限

1.2、目录的权限

目录的权限与文件基本一致,但是目录的x权限表示能否通过cd进入该目录。 示例:

# 切换chuck用户,查看/root,默认是---,表示其他用户无法进入该目录
[chuck@localhost /]$ ls -la
总用量 28
dr-xr-x---.  13 root root 4096 12月 21 11:19 root[chuck@localhost /]$ cd /root
bash: cd: /root: 权限不够

1.3、修改编辑权限

默认root用户可以修改所有文件权限,普通用户对自己所有者的文件有权限修改。

常用的修改命令: chown:修改文件的拥有者,默认用户创建的文件以自身为用户和用户组

[root@localhost opt]# touch test.txt
[root@localhost opt]# ls -la
-rw-r--r--   1 root root   0 12月 21 11:56 test.txt# 使用chown修改所有者
[root@localhost opt]# chown chuck test.txt 
[root@localhost opt]# ls -la
-rw-r--r--   1 chuck root   0 12月 21 11:56 test.txt

chgrp:修改文件或目录的所属组

# 使用chgrp修改用户组,使用-R选项将目录和下级文件和目录都修改
[root@localhost opt]# chgrp it-group test.txt 
[root@localhost opt]# ls -la test.txt 
-rw-r--r-- 1 chuck it-group 0 12月 21 11:56 test.txt

上面是修改用户和组的命令,但是没有对具体的rwx进行修改。

使用chmod修改文件和目录的权限。格式为chmod [权限] 文件或目录

权限有两种表示方式:

  • 数字格式
  • 字符格式

数字格式:上次讲过文件的权限分为[用户][用户组][其他人],每个集合有[rwx]三个权限。数字表示将rwx字符对应为一个数字,分别将三个集合的数字进行相加就是文件的权限了。 对应关系:

权限作用
r4读取
w2编辑写入
x1执行

示例:

-rw-r--r-- 1 chuck it-group 0 12月 21 11:56 test.txt
第一个字符表示为文件
[用户]权限为rw-,代入数字为4+2+0=6
[用户组]权限为r--,代入数字为4+0+0=4
[其他人]权限为r--,代入数字为4+0+0=4
所以test.txt的权限为644。# 修改权限的基础是用户和组已经配置正确了
# 手动修改权限,chmod [-R] 权限 文件或目录
[root@localhost opt]# chmod 777 test.txt 
[root@localhost opt]# ls -la
-rwxrwxrwx   1 chuck it-group   0 12月 21 11:56 test.txt

字符格式:基于现有权限进行修改。

使用u(用户),g(组),o(其他人),a(全部)表示不同集合

使用+(加入权限),-(移除权限),=(设置权限)

使用r(读取),w(写入),x(执行)表示文件权限

格式为:chmod [ugoa] [+-=] rwx 文件或目录 ,示例:

[root@localhost opt]# ls -la
-rwxrwxrwx   1 chuck it-group   0 12月 21 11:56 test.txt
# 移除用户组的x权限
[root@localhost opt]# chmod g-x test.txt 
[root@localhost opt]# ls -la
-rwxrw-rwx   1 chuck it-group   0 12月 21 11:56 test.txt# 添加用户组的x权限
[root@localhost opt]# chmod g+x test.txt# 移除所有的x权限
[root@localhost opt]# chmod a-x test.txt # 手动设置权限
[root@localhost opt]# chmod u=rwx,g=rw,o=r test.txt 
oot@localhost opt]# ls -la test.txt 
-rwxrw-r-- 1 chuck it-group 0 12月 21 11:56 test.txt

上面两种格式都可以使用看个人习惯,命令后面可以添加不同的选项和参数实现不同功能,自行实验探索。

常用命令:

  • chown 修改用户所有者
  • chgrp 修改用户组
  • chmod 修改文件或目录权限

1.4、文件和目录的权限意义

在Linux中,文件和目录的权限具有重要意义。

对于文件,权限决定了哪些用户可以读取、写入或执行该文件。对于目录,权限同样重要,因为它决定了哪些用户可以查看、添加或删除目录中的文件。具体来说:

文件权限:

  • r(read):表示用户可以读取文件的内容。
  • w(write):表示用户可以编辑、新增或修改文件的内容。
  • x(execute):表示文件具有可执行权限,用户可以执行该文件。

目录权限:

  • r(read contents in directory):表示用户可以读取目录结构清单,即查看目录下的文件名数据。
  • w(modify contents of directory):表示用户可以新建新的文件和目录、删除已经存在的文件和目录、重命名已存在的文件或目录、转移该目录内的文件、目录位置等。
  • x(access directory):表示用户可以进入该目录,但目录本身不能被执行。

x(execute,执行权限)对于文件而言,表示具有执行文件的权限。这意味着如果一个文件具有x权限,那么用户可以执行该文件。然而,文件的x权限与文件的内容或属性没有直接关系。它仅仅表示用户是否具有执行该文件的权限。

二、文件类型

在上面的文件类型第一个字段显示了文件或目,现在学习下都有哪些文件类型。文件是存储实际数据的载体,目录是将一类文件进行存放的集合,目录本身不能执行。

文件类型:

  • 常规文件

    • 纯文本文件(ASCII),比如文本文件、配置文件等,可以通过cat查看
    • 二进制文件(binary),可执行文件,如ls、cd、pwd等都是二进制文件,通过cat查看显示乱码,是经过编码的文件,可用于执行任务
    • 数据文件(data),例如.sql,/var/log/wtmp等
  • 目录,文件的分类存储

  • 链接文件,类似于Windows的快捷方式,指向实际文件

  • 设备,如硬盘、鼠标、U盘等,一般在/dev下面

Linux文件扩展名与Windows不同,它并没有特定的文件扩展名标识,而是通过文件内容和属性来决定其用途。就是就算赋予了文件x权限,如果是纯文本文件也没有意义,需要是例如脚本、可执行程序等才生效。

常见文件后缀:

  • .tar:经过打包的压缩文件,可以用tar命令解压。
  • .tar.gz、.tgz:经过打包的压缩文件,可以用tar命令解压。
  • .zip:经过打包的压缩文件,可以用unzip命令解压。
  • .bz2:bzip2程序压缩的文件。
  • .xz:程序压缩文件。
  • .sh:脚本或批处理文件(scripts),因为批处理文件是使用shell写成的,所以扩展名就编城 *.sh。
  • .pl:perl语言文件,通过perl语言开发的程序。
  • .py:python语言文件,通过python语言开发的程序。
  • .html、.htm、.php、.jsp、.do:网页相关文件,分别代表html和php语法的网页文件。
  • .conf:系统服务的配置文件。
  • .rpm:rpm安装包文件。

三、常见目录解析

  • /bin:二进制可执行文件的目录,包含Linux系统中所有重要的命令和工具。
  • /boot:存放系统核心文件以及启动时必须读取的文件,包括Linux内核的二进制映像。
  • /dev:设备文件目录,包含与硬件设备和外部设备的连接点,例如硬盘、USB设备、串口等。
  • /etc:系统配置文件目录,包含各种系统和应用程序的配置文件。
  • /home:用户主目录的基础目录,每个用户都有一个对应的子目录。
  • /lib:库文件的目录,包含共享库和内核模块。
  • /lib64:存放64位架构的库文件的目录。
  • /media:可移动媒体设备(如光盘、USB设备等)挂载点的目录。
  • /mnt:临时挂载点的目录,用于临时挂载其他文件系统或网络共享。
  • /proc:虚拟文件系统,包含当前运行进程和内核信息的文件。
  • /run:在系统启动期间存放临时运行时数据的目录。
  • /srv:服务相关数据的目录,用于存放特定服务所需的数据。
  • /tmp:临时文件目录,用于存放临时文件和临时数据。
  • /var:可变数据的目录,包含日志文件、缓存数据等。

总结:这次学习了Linux中的文件和目录,权限的查询与设置,权限的修改和变更。了解了不同的文件类型和常见的目录功能。

本文由 mdnice 多平台发布

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

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

相关文章

基于车轮安装MEMS IMU的航迹推算算法研究

本文由来:前一篇文章“零速更新(ZUPT)辅助INS定位”,并通过开源方案ZUPT-aided-INS进行了算法验证。在验证过程中,意识到在进行多源传感器融合算法中,利用载体自身运动信息进行约束修正非常重要,因为这不需要额外增加传…

Android开发中实时语音开发之华为实时语音识别

上一篇(Android开发中,百度语音集成之一)简单的讲解了百度语音的识别,今天讲解一个华为的语音识别: 1.初始化: initRecognizer()mSpeechRecognizer MLAsrRecognizer.createAsrRecognizer(context) mSpeechRecognizer.setAsrListener(SpeechR…

前端案例—antdDesign的Select多选框组件加上全选功能

前端案例—antdDesign的Select多选框组件加上全选功能。 实现效果如下: Select 组件里有这个属性,可以利用这个对下拉菜单进行自定义。 const handleChange (e, value) > {setSelectState(e.target.checked)let arr productOptions?productOption…

【开源工程及源码】超级经典开源项目实景三维数字孪生智慧港口

智慧港口可视化平台,旨在实现对港口运营的全面监测、智能管理和优化决策。飞渡科技利用数字化、模拟和仿真的技术,通过互联的传感器和设备,实现实时数据的采集、传输和分析,将港口内外的复杂数据以直观、易懂的方式呈现&#xff0…

java通过stream实现字符串与map互转

题目如下 String data "1:a,2:b,3:c"; 1.编写一个方法将以上格式的字符串转换为一个map, key为:前的字符串, value为:后的字符串, 键值对用,分隔; 2.编写一个方法将上面生成的map还原成原始字符串,对key进行倒序 要求使用stream进行处理 这个…

Qt配置opencv,cmake编译参考笔记,已成功

Qt版本:Qt5.14.2 opencv:4.5.4(不要用4.5.5!!很坑别问我为什么知道) cmake:下的最新版本 前言:为什么非得要用cmake编译呢?跳过cmake不好吗? 之前用的opencv…

服务熔断(Hystrix)

服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长,或者不可用,对微服务A的…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

Python匹配文件模块的实战技巧

更多资料获取 📚 个人网站:ipengtao.com 在Python中,文件匹配是许多应用中常见的需求,例如文件管理、数据处理等。本文将深入探讨Python中用于文件匹配的模块,包括glob、fnmatch和os.path等,通过丰富的示例…

Keil5软件仿真 定时器互补通道 波形输出(Logic Analyzer)

步骤一:管脚配置确认。 ①配置定时器的管脚模式为复用推挽输出模式(GPIO_MODE_AF_PP)!!!,注意:复用开漏模式软件仿真时无波形。 步骤二:编译程序。 ①点击编译按钮。 …

(Mac上)使用Python进行matplotlib 画图时,中文显示不出来

【问题描述】 ①报错确缺失字体: ②使用matplotlib画图,中文字体显示不出来 【问题思考】 在网上搜了好多,关于使用python进行matplotlib画图字体显示不出来的,但是我试用了下,对我来说都没有。有些仅使用于windows系…

小型洗衣机什么牌子好又便宜?内衣裤洗衣机十大排名推荐

作为一个上班族,每天回到家中真的不愿意再动了,市面上也越来越多懒人福利神器,而内衣洗衣机可以称得上是人类最幸福的小家电,它不仅可以释放我们的双手,而且还比我们自己手洗得干净,功能和清洁力都比我们传…

Ubuntu 常用命令之 zip 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 Ubuntu系统下的zip命令是用来压缩文件的。这个命令可以将一个或多个文件或者目录压缩成一个.zip文件,也可以将整个目录树压缩成一个.zip文件。 zip命令的基本格式 zip [选项] [压缩文件名] [要压缩的文件或目录...]z…

python使用selenium无法获取frame完整内容的问题

问题描述 我们使用 selenium 去打开一个页面,由于页面中使用了 frame 元素,只能获取部分内容,不能获取 frame 中的任何内容的问题。 解决方法 这里需要切换到 frame 获取内容,然后再把默认页面的内容拼接为一个完成的网页。下面…

选择移动订货系统源码的四大原因

移动订货系统需要选择源码支持的厂家,有以下四个原因,其中第四个是比较重要的,大家点个关注点个赞,我们接着往下看。 1.可自行定制:支持源码的移动订货系统可以根据企业的具体需求进行定制开发,满足企业特定…

电脑完全重装教程——原版系统镜像安装

注意事项 本教程会清除所有个人文件 请谨慎操作 请谨慎操作 请谨慎操作 前言 本教程是以系统安装U盘为介质进行系统重装操作,照着流程操作会清除整个硬盘里的文件,请考虑清楚哦~ 有些小伙伴可能随便在百度上找个WinPE作为启动盘就直接…

运维实施工程师计算机基础

目录 一.运维实施工程师需要具备的知识 1.1.运维工程师、实施工程师是啥? 1.2. 运维工程师、实施工程师做些啥? 1.3.运维工程师、实施工程师需要具备啥技能? 二.计算机的组成 2.1.简介 2.1.1.CPU(中央处理器) 2.…

LSTM和GRU的区别

LSTM(Long Short-Term Memory)和GRU(Gated Recurrent Unit)都是循环神经网络(RNN)的变体,旨在解决传统RNN中的梯度消失和梯度爆炸的问题,使网络能够更好地处理长期依赖关系。 以下是…

25.BFD双向转发检查

BFD双向转发检查 链路故障检测工具,结合三层协议使故障检测更加快速 例如两台路由器之间加了一台二层设备 在修改优先级后,默认选择了下面那条优先级高的路由,R1 ping R2的时候是正常能ping通的 但是,当下面的路由出现故障后&a…

Mybatis3系列课程8-带参数查询

简介 上节课内容中讲解了查询全部, 不需要带条件查, 这节我们讲讲 带条件查询 目标 1. 带一个条件查询-基本数据类型 2.带两个条件查询-连个基本数据类型 3.带一个对象类型查询 为了实现目标, 我们要实现 按照主键 查询某个学生信息, 按照姓名和年级编号查询学生信息 按照学生…