Linux管理文件和权限
引言
Linux最优秀的地方之一,是它的多人多任务环境。而为了让每个使用者的文件数据得到保护,就必须对文件的权限
进行有效管理,因此文件系统的权限管理非常重要。Linux一般将文件可存取的身份分为三个类别,分别是 owner
、group
、others
,且三种身份各有 read
、write
、execute
等权限。
一、Linux文件与目录概述
(1)Linux目录树
1、目录树特征
- 目录树的起始点为根目录(/)。
- 每一个目录不仅能使用本地分区的文件系统,也可以使用网络上的文件系统。
- 每一个文件在目录树中的文件名(包含完整路径)独一无二 。
2、Linux的特殊目录
(2)命名规范
- 目录或文件名长度可以达到255个字符。
- 包含完整路径名称及目录(/)的完整文件名为4096个字符。
- 严格区分大小写。
- 可以包含空格等特殊字符,但必须使用引号;不可以包含“/”字符。还应避免特殊字符:* ? > < ; & ! [ ] | \ ’ " ` ( ) { }。
- 同类文件应使用同样的后缀或扩展名。
(3)配置标准
- FHS规范在根目录(/)下面各个主要目录应该放什么样的文件
- 第1层是根目录下面的各个目录应该放什么文件
- 第2层针对/usr及/var这两个目录的子目录来定义
(4)常用目录
(5)文件类型
Linux文件结构
- 索引节点:又称I节点,包含有关相应文件信息的一个记录。
- 数据:文件的实际内容,可以是空的,也可以非常大,并且有自己的结构。
普通文件
- 包括文本文件、数据文件和可执行的二进制程序等。
目录文件
- 目录文件是一种特殊文件,利用它可以构成文件系统的分层树形结构。
- 每个目录文件中至少包括两个条目:“…”表示上一级目录,“.”表示该目录本身。
设备文件
- 设备文件是一种特殊文件,用于存放在文件索引节点中的信息。
- 设备文件又可分为两种类型:字符设备文件和块设备文件。
链接文件
- 一种特殊文件,提供对其他文件的参照。它们存放的数据是文件系统中通向文件的路径。
- 链接文件有两种,分别是符号链接(Symbolic Link)和硬链接(Hard Link)。
使用ls -l命令以长格式列出目录时,每一行第1个字符代表文件类型。其中-表示普通文件,d表示目录文件,c表示字符设备文件,b表示块设备文件,l表示符号链接文件。
二、文件和目录操作——文件操作
(1)创建文件
- touch命令可以创建文件
touch [选项]… 文件…
- touch命令示例
touch myfile01.txt myfile02.txt
# 同时创建两个空文件
ls -l my*
# 查看这两个文件的详细信息
1、cat
cat
命令连接文件并打印到标准输出设备上,常用来显示文件内容
cat [选项] … [文件]…
-b
对输出内容中的非空行标注行号。-n
对输出内容中的所有行标注行号。
cat myfile01.txt
cat myfile01.txt | more
2、more
- 在使用cat命令时,如果文件太长,用户只能看到文件的最后一部分。这时可以使用
more
命令,一页一页地分屏显示文件的内容
more [选项] <文件>…
more myfile01.txt
more命令只能向下翻页
3、less
less
命令用来分页显示文件内容,但功能比more更强大
less [选项] <文件>…
less myfile01.txt
按“Enter”回车键可以向下移动一行,按“Space”空格键可以向下移动一页,按“B”键可以向上移动一页,也可以用光标键向前、后、左、右移动,按“Q”键可以退出less命令。
4、head
head
命令用于显示文件的开头部分,默认情况下只显示文件的前10行内容
head [选项]… [文件]…
-n num
显示指定文件的前num行。-c num
显示指定文件的前num个字符。
head -n 20 myfile01.txt
5、tail
tail
命令在屏幕上显示指定文件的末尾若干行或若干字节
tail [选项]… [文件]…
-n num
显示指定文件的末尾num行。-c num
显示指定文件的末尾num个字符。+num
从第num行开始显示指定文件的内容。
tail -n 20 myfile01.txt
6、cp
cp
命令将源文件或目录复制到目标文件或目录中
cp [选项] 源文件或目录 目标文件或目录
- -a:尽可能将文件状态、权限等属性照原状予以复制。
- -f:如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户。
- -i:如果目标文件或目录存在,提示是否覆盖已有的文件。
- -R:递归复制目录,即包含目录下的各级子目录。
cp myfile01.txt ./test.txt
7、rm
rm
命令可以删除一个目录中的一个或多个文件和目录,也可以将某个目录及其下属的所有文件和子目录删除。
rm [选项] 文件列表
- -i:删除文件或目录时提示用户。
- -f:删除文件或目录时不提示用户。
- -R:递归删除目录,即包含目录下的文件和各级子目录。
rm -i test.txt
8、mv
mv
命令用来移动文件或目录,还可在移动的同时修改文件或目录名。
mv [选项] 源文件或目录 目标文件或目录
-i
如果目标文件或目录存在,则提示是否覆盖目标文件或目录。-f
无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示。
mv myfile01.txt ./file.txt
9、gzip / unzip
gzip命令用于对文件进行压缩和解压缩
- gzip [选项] 压缩文件名/解压缩文件名
unzip命令用于对WinZip格式的压缩文件进行解压缩
- unzip [选项] 压缩文件名
tar
命令用于对文件和目录打压缩包,或者对压缩包解压缩
tar [选项] 文件或目录名
tar命令的常用参数选项如下:
-c
生成档案文件。-v
列出归档解档的详细过程。-f
指定档案文件名称。-r
将文件追加到档案文件末尾。-z
以gzip格式压缩或解压缩文件。-j
以bzip2格式压缩或解压缩文件。-d
比较档案与当前目录中的文件。-x
解开档案文件。
10、rpm
rpm
命令主要用于对RPM软件包进行管理。
rpm[参数]软件包名
rpm命令的常用参数选项如下:
-qa
查询系统中安装的所有软件包。-q
查询shiyi指定的软件包在系统中是否安装。-qi
查询系统中已安装软件包的描述信息。-ql
查询系统中已安装软件包里所包含的文件列表。-qf
查询系统中指定文件所属的软件包。-qp
查询RPM包文件中的信息,通常用于在未安装软件包之前了解软件包中的信息。-i
用于安装指定的RPM软件包。-v
显示较详细的信息。-h
以“#”显示进度。-e
卸载已安装的RPM软件包。-U
升级指定的RPM软件包。软件包的版本必须比当前系统中安装的软件包的版本高才能正确升级。如果当前系统中并未安装指定的软件包,则直接安装。-F
更新软件包。
11、whereis
whereis
命令用来寻找命令的可执行文件所在的位置。
whereis[参数]命令名称
whereis rpm
whereis命令的常用参数选项如下:
-b
只查找二进制文件。-m
只查找命令的联机帮助手册部分。-s
只查找源代码文件。
12、mkdir
mkdir
命令用于创建一个目录。该命令的语法为:
mkdir [参数] 目录名
上述目录名可以为相对路径,也可以为绝对路径
13、rmdir
rmdir
命令用于删除空目录。该命令的语法为:
rmdir [参数] 目录名
上述目录名可以为相对路径,也可以为绝对路径。但所删除的目录必须为空目录。
14、cd
cd
命令用来改变工作目录
cd [目录名]
pwd命令用于显示当前工作目录的绝对路径
15、ls
ls
命令列出指定目录的内容
ls [选项] [目录或文件]
三、管理文件和目录
(1)文件权限组合
1、文件访问者身份
所有者(属主)
所属组(属组)
其他用户
2、文件访问权限
读(r):读取文件内容或者查看目录。
写(w):修改文件内容或者创建、删除文件。
执行(x):执行文件或者允许使用cd命令进入目录。
3、文件权限组合
4、查看文件属性
-rw-r–r-- 1 zxp zxp 8980 7月 14 21:11 examples.desktop
[文件权限] [链接][所有者][所属组] [容量] [ 修改日期 ] [ 文件名 ]
5、文件访问
① 变更所有者
使用chown
命令变更文件所有者,使其他用户对文件具有所有权
chown [选项] [新所有者] 文件列表
② 变更所属组
使用chgrp
命令可以变更文件的所属组
chgrp [选项] [新的所属组] 文件列表
使用chown命令同时变更文件所有者和所属组
chown [选项] [新所有者]: [新的所属组] 文件列表
③ chmod命令设置文件访问权限用法
chmod [选项]… 模式[,模式]… 文件
④设置文件访问权限(文件权限用字符表示)
- +表示增加某种权限,−表示撤销某种权限,=表示指定某种权限
- 所有者、所属组和其他用户分别用字符u、g、o表示,全部用户用a表示权限类型用r、w和x表示
⑤设置文件访问权限(文件权限用数字表示)
-
将权限读(r)、写(w)和执行(x)分别用数字4、2和1表示,没有任何权限则表示为0
-
权限用其各项权限的和表示(结果为0~7之间的数字),依次为所有者(u)、所属组(g)和其他用户(o)的权限
-
默认管理员新创建的普通文件的权限被设置为:rw-r–r–,用数字表示为644。
-
新创建的目录权限为:rwx-xr-x,用数字表示为755。
-
默认权限通过umask(掩码)实现,掩码用数字表示,实际上是文件权限码的“补码”。
-
创建目录的最大权限为777,减去umask值(如022),就得到目录创建默认权限(如777−022=755)。
-
创建文件的最大权限为666,减去umask值(如022),就得到文件创建默认权限(如666−022=644)。
-
可使用umask命令来查看和修改umask值。
总结
Linux 的文件和权限管理是其多用户环境的重要特性,通过目录树结构和严格的权限控制,确保了数据的安全性和用户的隔离。用户可以使用各种命令进行文件
和目录
的操作,如创建、查看、复制、删除和移动文件
,同时通过设置权限
(读、写、执行)来管理对文件的访问。权限可以通过字符或数字表示,并通过 chown
、chgrp
和 chmod
等命令进行修改。此外,umask
设置了新创建文件和目录的默认权限,从而提供了灵活性和安全性。整体而言,掌握这些管理方法对于有效使用和维护 Linux 系统至关重要。