LINUX基础培训三之文件和目录管理

前言、本章学习目标 

  1. 了解LINUX文件类型及目录结构
  2. 掌握LINUX文件的基本属性
  3. 熟悉用户、用户组、其他的安全模型
  4. 掌握LINUX文件和目录的常用管理

一、LINUX文件管理

1、什么是LINUX中的文件

在LINUX操作系统中有一个重要的概念:一切皆为文件。除了我们常说的文本文件、执行文件,所有资源都可以看作是文件,包括硬盘、鼠标、打印机等硬件设备。Linux把每个硬件都看成是一个设备文件,这种思想的好处就是隐藏了不同硬件设备的细节,为内核提供统一的I/O操作接口,简化了系统的设计和编程。
 

2、文件类型有哪些

Linux有7种文件类型,可以用“ls -l”命令查看文件属性列,该列的第一个字符就是下面括号里的字符。

(1)普通文件(-),就是一般存取的文件,例如[-rwxr-xr-x]
(2)目录文件(d),就是目录,例如[drwxr-xr-x]
(3)链接文件(l),基于其他文件,类似Windows的快捷方式,例如[lrwxr-xr-x]
(4)字符设备文件(c),键盘、打印机之类的接口设备,例如[crwxr-xr-x]
(5)块设备文件(b),硬盘之类的接口设备,例如[brw-rw----]
(6)套接字文件(s),通常用于网络连接,例如[srw-rw----]
(7)管道文件(p),通常用于进程之间的通信,例如[prwxr-xr-x]

 3、LINUX文件安全性

每个文件都属于一个UID和一个GID
每个进程都使用一个UID和一个或多个GID运行,通常被运行进程的用户决定

三种存取权限对象:
进程使用和文件相同的UID来运行(用户,user)
进程使用和文件相同的GID来运行(组群,group)
所有其它的进程(其他,other)

4、LINUX文件基本属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:
chown (change owner) : 修改所属用户与组。
chmod (change mode) : 修改用户的权限。

5、LINUX权限类型

LINUX系统中所有文件目录权限以三个为一组的字母表示,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

 6、更改文件属性相关操作命令

1、chgrp:更改文件属组
语法:chgrp [-R] 属组名 文件名
参数选项
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

3、chmod:更改文件9个属性
语法: chmod [-R] xyz 文件或目录
参数选项
-R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

7、权限值计算方法

文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:

owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定,也可以直接用 chmod 754 文件名设置。示例:

解释权限

-rwxr-x--- 1 andersen trusted 2948 Oct 11 14:27 myscript

·所属用户andersen具备读取、写入、和执行权限
·组群trusted中的成员具备读取和执行权限
·其它用户没有任何权限

-rw---(600)--只有属主有读写权限。
-rwx-r-r- (644)-只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------(700)--只有属主有读、写、执行权限。
-rwxr-xr-x(755)-属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx-x-x(711)-属主有读、写、执行权限;而属组用户和其他用户只有执行权执行权限。
-rw-rw-rw-(666)--所有用户都有文件读、写权限,这种做法不可取。
-rwxrwxrwx(777)--所有用户都有读、写、执行权限,更不可取的做法。

 8、查看文件常用命令

cat  由第一行开始显示文件内容
tac  从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl   显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。

二、LINUX目录管理

1、LINUX的目录结构

Linux的目录设计为树型结构,最上面一层为根目录“/”。从根目录往下看,大致有下图所示的树状目录结构。 

根目录下常用的目录有(ls -l /):

/:        根目录,目录结构中最顶层的一个目录;
/bin:    存放用户的常用命令;
/boot: 存放系统的内核文件,以及系统启动时用到的文件;
/dev:    存放硬盘、鼠标之类的设备文件;
/etc:    存放系统的一些配置文件;
/home:    普通用户的主目录;
/lib:    用来存放目录/bin和/sbin中程序所需的库文件;
/lost+found:用于系统故障时保存文件;
/media: 外部设备挂载点,使用该目录挂载光盘、移动硬盘;
/mnt:     同上; 

/opt:    主要用来安装第三方软件;
/proc:    用来保存CPU、内存等系统信息;
/root:    超级用户root的家目录;
/sbin:    用来存储超级用户的命令;
/selinux :存放系统安全方面的一些配置文件;
/srv:    某些系统服务启动后,所需访问的数据目录;
/tmp:    临时目录,所有用户都有读写权限;
/usr:    存放与系统用户相关的文件和目录,例如应用程序、库文件等;
/var:  存放一些不断改变的文件,例如系统日志、登录信息等

2、目录路径

绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。

路径切换:
特殊符号表示
 .   当前目录
 ..  上级目录
 ~   家目录

返回上级目录:
# cd .. 

返回家目录:
# cd ~
或者
# cd

 3、管理目录的常用命令

ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。

三、LINUX几种权限设置

1、LINUX默认文件权限

·umask可用来设定权限编码,权限编码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
·文件的默认权限是目录的默认权限减去执行权限
·umask使用umask命令来设置.
root用户的umask是022,新建目录的默认权限是777减去umask,p7n.022=755,新建文件的默认权限是666减去umask,即666-022=644
·不具特权的用户的umask是002,新建目录的默认权限是777减去m,即777-002=775,新建文件的默认权限是666减去umask,即666-002-664

系统默认umask可在/etc/profile配置文件中永久设置生效。
 

2、LINUX可执行文件的特殊权限

·setuid表示在运行程序时执行者实际上是以文件的所有者(属上)身份运行的,目的是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限,suid对目录无效.
·setgid表示在运行程序时执行者实际上是以文件的属组身份运行的,如果sgid是设置在某个目录上,则在该目录内所建立的文件或目录的用户组,将会是此目录的用户组。
·[root@station20~]#ls -l /usr/bin/passwd /etc/passwd
-rw-r--r--. 1 root root 1938 Apr 30 07:30/etc/passwd
-rwsr-xr-x.1 root root 31768 Jan 28 2010/usr/bin/passwd 

·setuid就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,
·setgid同理指”组“就是:让普通用户拥有可以执行“只有组成员权限才能执行”的特殊权限
·作为普通用户是没有权限修改/etc/passwd文件的,但给/usr/bin/passwd以setuid
后,普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passw中对应自己账号的那部分内容,如更改自己的密码.

 3、LINUX的ACL权限控制

Linux 系统传统的权限控制方式,无非是利用 3 种身份(文件所有者,所属群组,其他用户),并分别搭配 3 种权限(读 r,写 w,访问 x)。但在实际应用中,以上这 3 种身份根本不够用,无法实现对某个单独的用户设定访问权限,这种情况下,就需要使用 ACL 访问控制权限。
ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。也可以这么说,设定文件的访问权限,除了用传统方式(3 种身份搭配 3 种权限),还可以使用 ACL 进行设定。

getfacl 命令用于查看文件或目录当前设定的 ACL 权限信息。该命令的基本格式为:
[root@localhost ~]# getfacl 文件名

setfacl 命令可直接设定用户或群组对指定文件的访问权限。此命令的基本格式为:
setfacl -m:给用户或群组添加 ACL 权限
setfacl -d:设定目录ACL 权限
setfacl -R:设定递归 ACL 权限
setfacl -x:删除指定的 ACL 权限
setfacl -b:删除指定文件的所有 ACL 权限

四、本章实验 

1、创建一个共享目录
在“/home”下创建一个目录名为sysadms,
要求所属组为sysadm组,
组成员可以读写,其它用户没有任何权限,
同组成员在目录下创建的文件的所属组也为sysadm组。

# mkdir  /home/sysadms
# chgrp  sysadm  /home/sysadms/
# chmod  g=rwx  /home/sysadms/
# chmod  o=---  /home/sysadms/
# chmod  g+s  /home/sysadms/

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

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

相关文章

pytorch09:可视化工具-TensorBoard,实现卷积核和特征图可视化

目录 一、TensorBoard简介二、TensorBoard安装三、TensorBoard运行可视化四、TensorBoard详细使用4.1 SummaryWriter4.2 add_scalar()4.3 add_scalars()4.4 add_histogram()4.4.1实际项目开发使用 4.5 add_image()4.6 torchvision.utils.make_grid4.7 卷积核和特征图可视化4.7.…

Nature:物理所利用原位透射电子显微技术在分子尺度研究立方冰

冰是水在自然界中的固体形态,在大自然中也广泛存在,冰的结构及形成机理研究对云物理及低温储存物理至关重要,因此科学家们对冰的研究也历史久远。提到冰在较小尺度的存在形态,我们最容易想到的是雪花。如下图所示,雪花…

视频智能分析/边缘计算AI智能分析网关V4区域入侵检测算法如何配置?

边缘计算AI智能分析网关(V4版)部署了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,并上报识别结果,并能进行语音告警播放。算法配置后,即可对监控视频流进行实时检测&#xf…

(2017|NIPS,VQ-VAE,离散潜在)神经离散表示学习

Neural Discrete Representation Learning 公和众和号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 3. VQ-VAE 3.1 离散潜在变量 3.2 学习 3.3 先验 4. 实验 0. 摘要 学习在无…

【QML COOK】- 000-创建Project

1. 文件->New Project... 2. Application(Qt)->Qt Quick Application(compat) 3. 填好【名称】和【创建路径】 4. 选择CMake 5. 选择QT6.2 6. 直接【下一步】 7. 直接下一步 8. 直接下一步 9. 出现工程文件 10. 点击运行 11. 出现窗口

10亿数据高效插入MySQL最佳方案

写在文章开头 你好,我叫sharkchili,目前还是在一线奋斗的Java开发,经历过很多有意思的项目,也写过很多有意思的文章,是CSDN Java领域的博客专家,也是Java Guide的维护者之一,非常欢迎你关注我的…

【性能】【算法】for循环,性能提高

目录 ■提高性能的方法 ・原理 1.1.java处理中,计算阶乘,为什么展开循环可以提高效率 1.2.从cpu的流水线角度,再说明一下 1.3.介绍一下 cup的指令流水线 ■实际运用 1.求和 代码 结果 2.求阶乘 (性能提高效果明显&…

Debezium发布历史56

原文地址: https://debezium.io/blog/2019/05/23/tutorial-using-debezium-connectors-with-apache-pulsar/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. 将 Debezium 连接器与 Apache Pulsar 结合…

笔试案例2

文章目录 1、笔试案例22、思维导图 1、笔试案例2 09)查询学过「张三」老师授课的同学的信息 selects.*,c.cname,t.tname,sc.score from t_mysql_teacher t, t_mysql_course c, t_mysql_student s, t_mysql_score sc where t.tidc.cid and c.cidsc.cid and sc.sids…

简洁大气带进度条的URL跳转页面HTML源码

源码介绍 简洁大气带进度条的URL跳转页面HTML源码,记事本修改里面的内容即可,喜欢的同学可以拿去使用 获取方式: 蓝奏云:https://wfr.lanzout.com/ic1iZ1kj6yde CSDN免积分下载:https://download.csdn.net/download/huayula/88…

Java桶排序、基数排序、剪枝算法

桶排序算法 桶排序的基本思想是: 把数组 arr 划分为 n 个大小相同子区间(桶),每个子区间各自排序,最后合并 。计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。 1.找出待…

答疑解惑:核技术利用辐射安全与防护考核

前言 最近通过了《核技术利用辐射安全与防护考核》,顺利拿到了合格证。这是从事与辐射相关行业所需要的一个基本证书,考试并不难,在此写篇博客记录一下主要的知识点。 需要这个证书的行业常见的有医疗方面的,如放疗,…

黑马苍穹外卖学习Day3

目录 公共字段自动填充问题分析实现思路代码实现 新增菜品需求分析和设计接口设计代码开发开发文件上传接口功能开发 菜品分页查询需求分析和设计代码开发 菜品删除功能需求分析与设计代码实现代码优化 修改菜品需求分析和设计代码实现 公共字段自动填充 问题分析 员工表和分…

静态网页设计——崩坏3(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: 使用技术:HTMLCSSJS(静态网页设计) 主要内容:对游戏崩坏3进行简单介绍。 https://www.bilib…

【Linux进程】查看进程fork创建进程

目录 前言 1. 查看进程 2. 通过系统调用创建进程-fork初识 总结 前言 你有没有想过在使用Linux操作系统时,后台运行的程序是如何管理的?在Linux中,进程是一个非常重要的概念。本文将介绍如何查看当前运行的进程,并且讨论如何使用…

将项目同时提交到GitHub和码云Gitee上面,GitHub与Gitee同步

多个远程仓库同时使用 新建GitHub仓库 创建成功 在终端中创建仓库 如果你想在本地机器上创建Git仓库,或者想添加一个文件夹或文件到已经存在的Git仓库中,你应该在终端中创建你的Git仓库。在你可以通过终端来创建一个Git仓库。以下是在终端中创建Git仓…

java解析json复杂数据的第三种思路

文章目录 一、概述二、数据预览1. 接口json数据2. json转xml数据 三、代码实现1. pom.xml2. 核心代码3. 运行结果 四、源码传送 一、概述 接上篇 java解析json复杂数据的两种思路 我们已经通过解析返回json字符串得到数据,现在改变思路, 按照如下流程获取数据: #mermaid-svg-k…

AcrelCloud-3000环保用电监管云平台解决方案——安科瑞赵嘉敏

概述 国家全面推进打赢蓝天保卫战,打好碧水保卫战,打胜净土保卫战,加快生态环境保护、建设美丽中国。环保用电监管系统针对企业内的环保设施、设备运行状况进行检测,发挥环保设备的作用,提高监察效率,并为…

洛谷 P1217 [USACO1.5] 回文质数 Prime Palindromes 刷题笔记

P1217 [USACO1.5] 回文质数 Prime Palindromes - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 直接枚举 减枝优化判断 优化1 只有偶数才会是质数 优化2 回文数的判断次数要优于检查素数 先判断是否为回文数再检查是否为质数 if( hw(i)&&isprime(i)) 这里…

Springcloud Gateway网关

简介 SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。 Spring Cloud Gateway的目标提供统一的路由方式且基于 Filter链的方式提供了网关基本的功能,例如:安全,监控/指标&#xf…