Linux文件属性

1. Linux文件属性概述

在Linux系统中,文件或目录的属性主要包括:索引节点(Inode)文件类型权限属性链接数所归属的用户和用户组最近修改时间等内容。

1.1 文件属性的查看

  • 方法一: 执行ls-lhi命令可以显示/data目录下内容的常见属性信息,示例如下:
[root@localhost ~]# ls -lhi /data
total 12K
139170 -rw-r--r--. 1 root root 22 Mar 11 15:17 ceshi.txt
139167 -rw-r--r--. 1 root root 22 Mar 11 15:16 exection.txt
139171 -rw-r--r--. 1 root root 38 Mar 11 15:37 test.txt
  • 方法二: 也可以使用 stat 查看文件属性。
# stat 文件名
[root@localhost ~]# stat test.txt 
  File: ‘test.txt’
  Size: 16        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 33950750    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2021-10-24 09:54:51.509695707 +0800
Modify: 2021-10-24 09:54:27.884697055 +0800
Change: 2021-10-24 09:54:27.885697055 +0800
 Birth: -

1.2 文件属性的解释

在这里插入图片描述

列号列名说明
1Inode索引号相当于人的身份证号,唯—。系统读取文件时首先通过文件名找到Inode号码,然后才能读取到文件内容。
2-3文件类型和权限此处共11个字符,其中第一个字符表示文件类型;随后九个字符表示文件对应的权限,最后一个字符点号是与SELinux相关的一个标识。
4硬链接数量表示可以通过多少条路径能够查看文件信息。
5-6属主和属组文件的所属用户、文件的所属用户组。
在Linux系统里,文件和程序的存在必须要有用户和组满足相应的存在需求。
7文件大小文件或目录的存储大小。
8修改时间文件的最后修改时间。默认是月、日、时、分。
9文件/目录名实际的文件名或目录名。但是,名称并不算文件的属性。

2. 文件属性详解

2.1 索引节点

文件的索引节点(Index Node)类似人的身份证,索引节点是文件在系统中的唯一标识。对文件的查找最终都要通过索引节点才能找到。

  • 如果有两个或多个文件的inode号是相同的,那么这几个文件就互为硬链接
  • 索引节点在每个Linux存储设备(磁盘或硬盘)或存储设备的分区(此时的存储设备可以是硬盘、软盘、U盘,等等)中被格式化为ext系列文件系统之后,都会生成两部分内容:
    • 第一部分是 Inode 索引节点(默认大小为128或256字节),
    • 第二部分是 Block 磁盘块(默认大小为1~4KB)。
    • 由于磁盘或分区一般都比较大,因此,InodeBlock都会存在很多个,并且都可以存放数据信息。
    • 创建一个文件,最少占用1个inode索引号和一个block块

索引节点和磁盘块

磁盘要想使用,必须先分区,格式化(创建文件系统)。而在格式化创建文件系统时,就会生成大量的inodeblock

  • inode就是索引节点,本质是硬盘上的一块具备唯一数字编号的存储空间,存放的是数据是文件的属性(大小、时间、用户和组、权限等)都在索引节点里,但是不包含文件名(文件名在上级目录的block里),同时存放指向文件实体(block)的指针(类似软链接)。大小256字节或512字节。
  • block叫做磁盘块,是用来存放实际数据的实体单元(ext文件系统一般最大为4KB),即用来真正存放数据,例如:照片、视频等普通文件数据,单个大的文件需要占用多个Block块来存储,特别小的单个文件如果不能占满整个Block块,剩余的空间也无法在利用。(比如:一个block 4K,放了0.1K文件,剩3.9K浪费了。)

Inode与Block的关系

Inode 除了要记录文件属性的信息之外,还会为每个文件进行信息索引,所以就有了 Inode 的数值。操作系统根据指令,即可通过 Inode 的值最快速地找到相对应的文件实体 Black。比如一本书,存储设备或分区就相当于这本书,Block 相当于书中的每一页内容,而 Inode 就相当于这本书前面的目录,一本书包含了很多内容,一个知识点可能有多页,如果想查找某部分或某知识点的内容,我们一般会先查看书的目录,通过目录我们能够更快地找到想要查看的知识点相关内容。

Inode和Block的特点

  • Inode的特点:
  • ext3/ext4 文件系统(C6的默认文件系统)下,一个非空文件至少要占用一盒Inode(有且只有一个)和一个Block(可以有多个)。
  • Inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
  • Inode在某一个文件系统(分区)内是唯一的。
  • Block的特点:
  • 磁盘读取数据是按照Block为单位读取的;
  • 每读取一个Block就会消耗一次I/O;
  • 如果文件较大,一个文件可能占用多个Block,如果文件较小,一个Block剩余的空间会被浪费;

查看和管理Inode

  • 查看文件系统Inode总量以及剩余量的命令如下:
[root@localhost /]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
devtmpfs        250806   379  250427    1% /dev
tmpfs           253485     1  253484    1% /dev/shm
tmpfs           253485   696  252789    1% /run
tmpfs           253485    16  253469    1% /sys/fs/cgroup
/dev/sda3      9807360 73238 9734122    1% /
/dev/sda1       153600   331  153269    1% /boot
tmpfs           253485     1  253484    1% /run/user/0
  • 查看磁盘的使用量相当于是查看Block的情况,示例命令如下:
[root@localhost /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.5M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        19G  2.3G   17G  12% /
/dev/sda1       297M  125M  173M  43% /boot
tmpfs           199M     0  199M   0% /run/user/0
  • 通过“ls-i”或者“stat文件名”命令可以查看文件的 Inode 数值。
  • 通过dumpe2fs/dev/sda1 命令可以查看分区的 InodeBlock 的单位大小及各种相关信息。(仅适用于ext文件系统)

磁盘空间不足导致故障的案例

磁盘满了分两种情况:一种是Inode数量耗尽了,另一种则是Block满了。

  • Block耗尽的情况基本上大家都能理解,500GB硬盘存放600GB的大片,将直接耗尽所有的Block。但是Inode耗尽的情况,一般的运维人员可能就会搞不清楚了,因为每创建一个文件都会占用一个Inode,所以当文件无限多并且足够小的时候,Inode就会先于Block耗尽,导致看起来磁盘空间充足,但是却会收到提示“磁盘空间不够”的情况。
  • 磁盘空间满了故障情况总结:
    • 情况一:Block耗尽的情况,例如500GB磁盘存放400GB+200GB的视频。
    • 情况二:Inode耗尽的情况,产生大量的小文件(小于1KB)。

2.2 文件类型和权限

文件类型

在Linux系统中,一切皆文件。在windows中使用扩展名区分文件,在Linux中使用文件类型区分文件。但是在Linux中的文件名一般也会加上扩展名,主要是方便使用人员区分文件,更加易读,对文件类型没有影响。

Linux系统中,文件类型包含了普通文件目录文件字符设备文件块设备文件符号/软链接文件管道符文件

文件类型符号代表的意义
-英文名称为regular file,表示普通文件,包含纯文本、二进制文件、数据文件等
d英文全称directory,代表目录
l英文全称link,代表符号链接或者软链接文件,类似于Windows快捷方式,它指向的是文件的实体
c英文全称character,代表字符设备文件,例如,串口设备、早期上网拨号用的猫
b英文全称block,代表块设备文件,例如,硬盘、光驱
s英文全称socket,代表套接字文件,进程之间进行通信时会用到
p英文全称named pipe,表示管道文件

重点先掌握d-l这三种类型。

要查看文件类型,可以执行ls -lls -al命令来实现。

[root@localhost ~]# ls -l
total 52
-rw-------. 1 root root  1074 Mar  8 09:57 anaconda-ks.cfg
drwxr-xr-x. 2 root root  4096 Mar 10 18:01 data1
-rw-r--r--. 1 root root 21736 Mar  8 09:57 install.log
-rw-r--r--. 1 root root  5890 Mar  8 09:55 install.log.syslog
-rw-r--r--. 1 root root    18 Mar 12 04:00 ceshi.txt
-rw-r--r--. 1 root root    20 Mar 11 15:28 test.txt

文件类型详细介绍

普通文件(regular file)

普通文件(regular file)的第一个特征就是其属性开头为“-”。

若要删除普通文件,则可以使用rm命令来实现。

这些文件一般是用相关的应用程序或系统命令创建的,比如touchcpecho等命令工具。

  • Windows下doc、ppt、zip、jpg等格式的文档在Linux下都属于普通文件。

  • Linux下各种服务的配置文件(如/etc/services/etc/hosts等)也都是纯文本文件。

按照文件内容,又大略可以分为如下三种:

  • 纯文本文件(ASCII):此类文件的内容可以直接读出数据。可以使用cat命令读取文件,比如Linux的系统配置为文件;
  • 二进制文件(binary):Linux系统中的常见命令就是属于这种格式。例如cat命令就是一个二进制文件。
  • 数据格式文件(data):程序运行时会读取的一些特定格式的文件,这些特定格式的文件即称为数据文件。这种文件使用cat命令读取会出现乱码。例如,Linux在用户登录时都会将登录的数据记录在/var/log/wtmp(last命令的数据库文件)文件内,该文件是一个数据文件,可通过last命令读取出来。但如果使用cat命令读取则会读出乱码。因为它属于一种特殊格式的文件。
目录文件(directory)

目录文件的首要特征就是文件属性开头是“d”。

其次,目录文件在命令行界面往往显示蓝色

可以使用mkdir命令或cp命令创建目录。rm -r 命令删除,rmdir可以删除空目录。再者就是通过ls -Fls -p 命令执行,会在不同文件的结尾加上特殊标识,用以区分文件。目录的结尾是/,其他文件的结尾,有的也加上了特殊符号。

[root@localhost ceshi]# ls -F
arp.zip  ext/  test.jpg   trainning.ppt  test.doc  xiaodong/
etiantian_soft_link.txt@  ceshi*  ceshi_hard_link*  test/  wodi.gz
# 生成:
mkdir -p    #可以递归创建

# 复制:
cp -a/-r    

# 删除:
rm -fr
rmdir      # 只能删除空目录

# 区分:
ls -p      # 该命令查询文件会在文件后加上对应的特殊字符,目录的话以斜线结尾。
ls -F      # 除了以上效果,还会给其他文件类型的文件加其他特殊字符。
符号链接文件(symbolic link)

符号链接文件也被称为软链接文件,首要特征就是文件属性开头是“l

类似于windows系统下的快捷方式,本身并没有内容,而是指向了其他实体文件。可以使用具体命令:

ln -s 源文件名 新文件名 

[root@localhost ~]# cat text.txt     # 源文件
I am people
[root@localhost ~]# ln -s text.txt text_soft.txt   # 设置软链接,声明新文件
[root@localhost ~]# ls -l test*
lrwxrwxrwx. 1 root root 10 Mar 13 03:14 test_soft.txt -> test.txt
-rw-r--r--. 1 root root 12 Mar 13 02:46 test.txt
[root@localhost ~]# cat test_soft.txt     # 查看软链接文件
I am people

注意:如果创建链接时不使用-s参数,则表示创建硬链接文件,硬链接文件不适用于目录。

字符/块设备文件(character)/(block)

字符设备文件的首要特征就是文件属性开头是“c”。一般典型的文件就是串行端口的接口设备,如调制解调器等。

块设备文件的首要特征就是文件属性开头是“b”。一般是存储数据提供系统及程序访问的接口设备,如光盘、硬盘等。

[root@localhost ~]# ls -l /dev/tty /dev/sda1
brw-rw----. 1 root disk 8, 1 Mar 10 12:26 /dev/sda1    # 块设备文件
crw-rw-rw-. 1 root tty  5, 0 Mar 10 12:26 /dev/tty     # 字符设备文件

块设备和字符设备文件都是比较特殊的文件,一般都是实体设备接入到计算机后的设备,但是也可以使用mknod命令来模拟创建,并用rm命令来删除。在实际工作中,创建上述设备文件一般不需要通过命令实现。创建特殊文件的知识了解一下即可。

[root@localhost ~]# ll /dev/zero 
crw-rw-rw- 1 root root 1, 5 Nov 28 15:58 /dev/zero
[root@localhost ~]# ll /dev/null 
crw-rw-rw- 1 root root 1, 3 Nov 28 15:58 /dev/null
文件说明作用
/dev/zero是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流(特殊的数据格式流)。/dev/zero文件覆盖其他文件信息。产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
/dev/null是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪。可以看作空设备文件或黑洞文件。/dev/null被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。
套接口(socket)文件

套接口文件的首要特征就是文件属性开头是“s”。这种文件通常用在网络之间进行数据连接。该类型文件的文件名往往会有“.sock”后缀。

例如,当启动数据库软件MySQL服务时,会产生一个mysql.sock文件。

[root@localhost test]# ll /data/3306/mysql.sock 
srwxrwxrwx 1 mysql mysql 0 03-18 09:36 /data/3306/mysql.sock
[root@localhost ~]# ls -l /dev/log
srw-rw-rw- 1 root root 0 Feb 12  2012 /dev/log

# 我们可以启动一个程序来监听客户端的请求,客户端可以通过套接字来进行数据通信。示例代码如下:
mysql -uroot -ppass -S /data/3306/mysql.sock
管道文件(pipe)

管道文件的首要特征就是文件属性开头是“p”。主要用于解决多个程序同时访问一个文件所造成的错误。极少涉及。

文件权限

文件属性中,文件类型和权限列的后九位是文件的权限位,每三个字符分为一组,从左到右依次是属主权限位属组权限位其他用户权限位。在Linux系统中正是通过这9个权限位来控制文件用户对文件的访问权限的。
在这里插入图片描述

其中,表示权限的字符rwx- 分别代表了特定的含义,具体说明如下。

  • r(read):可读权限,对应数字4。
  • w(write):可写权限,对应数字2。
  • x(Execute):可执行权限,对应数字1。
  • -:没有任何权限,对应数字0。
  • 除此之外还有一些特殊的权限位,在此不做介绍。

标识符“ . ”

在第二列的11个字符中,最后一个字符“ . ”是标识SELinux的一个符号。当系统的SeLinux功能开启时,这个地方就会多一个点号。

SELinux是一个美国国家安全局牵头制定的一个安全规则。但是恰恰是因为这个规则太过于严格,一般情况下会关闭SELinux。

# 查看方法
[root@localhost ~]# getenforce
Enforcing

# 临时关闭
[root@localhost ~]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive

# 永久关闭
[root@localhost ~]# vim /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   # <==> 修改此处
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.3 硬链接数属性

在Linux系统中,链接可分为两种:一种为硬链接(Hard Link),另一种为软链接(Soft link)或符号链接(Symbolic Link)。

# 创建硬链接:
ln 原始文件 目标文件

# 创建软连接
ln -s 原始文件 目标文件      # 注意目标文件不能事先存在

硬链接的了解

硬链接是指通过索引节点(Inode)进行的链接。在Linux系统中,多个文件名指向同一个索引节点(Inode号相同)是正常且被允许的。这种情况下的两个文件就称作互为硬链接文件,本质上就是相同文件的两个名字。

在同一个分区/文件系统中,Inode号码相同的文件一定是硬链接文件。

硬链接文件就相当于是原始文件的另外一个访问入口。硬链接的作用之一是允许一个文件拥有多个有效的文件名(多个访问入口,类似于超市的多个入口),这样用户就可以建立硬链接到重要的文件上,为避免“误删”源数据加一份保险(误删一个也不会影响文件的访问)。

硬链接与文件删除

在Linux系统中,删除静态文件(没有进行调用的文件)的条件是与之相关的所有硬链接文件均被删除。一个静态文件被彻底删除的条件就是该文件的硬链接数量为0。

说明解释:

因为文件系统(ext)的原理是,只要文件的索引节点(Inode Index)还有一个以上的硬链接,那么,只删除其中的一个硬链接(即仅仅删除了该文件的链接指向)并不会影响索引节点本身和其他的链接(即数据文件实体并未被删除),只有在文件的最后一个硬链接被删除之后,此时如果有新数据要存储到硬盘上,或者系统通过类似的fsck做磁盘检查的时候,被删除文件的数据块及目录的链接才会被释放,空间将被新数据占用并覆盖。当然,这样一来,数据就再也无法找回了。

即使 rm -f file1 file1_hard_link 执行完,文件也没有删除。那么什么时候文件会被删除?

  • 系统定时清理掉没有文件名的Inode;
  • 磁盘检查时会清理;
  • 增加新文件时优先占用没有文件名的Inode;

硬链接知识小结

  • 相同的Inode节点号的多个文件互为硬链接文件,本质是相同文件不同的文件名。
  • 只有删除源文件以及所有对应的硬链接文件,文件实体才会被删除;否则删除任意一个都不会删除文件实体。
  • 待所有的硬链接文件及源文件均被删除之后,再存放新的数据时,新数据会占用这个文件的空间。磁盘进行fsck检查的时候,删除的数据就会被系统回收。
  • 可以通过给文件设置硬链接文件,来防止重要文件被误删。可以通过 rm 命令删除,ln 命令创建。
  • 对于静态文件(没有进程正在调用的文件)来讲,当对应的硬链接数为0(i_link)时,文件就被删除。i_link的查看方法是执行ls-lhi,然后查看结果的第三列。
  • 创建硬链接只能针对文件,不能针对目录。

软链接知识

软链接(Soft Link)也称为符号链接(Symbolic Link,symlink)。Linux里的软链接文件就类似于Windows系统中的快捷方式。软链接文件实际上是一个特殊的文件,文件类型用字母l表示。

要想创建软链接,那么目标文件将是不能存在的,这个文件是要用ln命令创建的,创建软链接必须要有源文件,即针对哪个文件做软链接。

访问软链接文件来读取数据的原理

软链接文件通过自身的Inode(存放原始文件路径信息,而不是读Block),读到了软链接信息,并指向了原始文件,进而读到原始文件名,以及原始文件的Inode,再通过原始文件的Inode读到原始文件的内容(Block),这就是访问软链接文件来读取数据的原理。

软链接的Block不存放源文件位置了,而是直接将源文件位置存放在Inode里面,既省事又更快捷。

软链接知识小结

  • 软链接类似于Windows的快捷方式(可以通过readlink查看其指向)。

  • 软链接类似于一个文本文件,里面存放的是源文件的路径,指向源文件实体。

  • 删除源文件,软链接文件依然存在,但是无法访问指向源文件路径的内容了。失效的时候一般是白字红底闪烁提示。

  • 软链接和源文件是不同类型的文件,也是不同的文件,Inode号也不相同。

  • 软链接文件的文件类型为字母(l),可以用rm命令删除。

  • 软链接文件不仅可以针对文件,还可以针对目录。

软链接和硬链接的区别

  • 分类:在Linux系统中,链接可分两种,一种称为硬链接(Hard Link),另一种称为符号链接或软链接(Symbolic Link)。

  • 概念:硬链接文件与源文件的Inode节点号相同,而软链接文件则相当于Windows下面的快捷方式(Inode节点号与源文件不同)。

  • 创建:默认在不带参数的情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。

  • 特点:

    • 不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常用到。

    • 软链接可以跨文件系统,硬链接不可以跨文件系统。

    • 删除软链接文件,对源文件及硬链接文件无任何影响;删除文件的硬链接文件,对源文件及软链接文件无任何影响。

    • 删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

    • 同时删除源文件及其硬链接文件,整个文件才会被“真正”的删除。

硬链接用处不多,可以用来对重要文件做快照以防止误删,对目录建立软链接在工作中很常用。

Linux系统文件删除原理

  • 从ext文件系统的角度描述文件删除的原理

Linux系统上的文件名是存储在父目录的Block里面的,并指向了这个文件的Inode节点,这个文件的Inode节点再标记指向存放这个文件的Block的数据块。我们删除一个文件时,实际上并不会清除Inode节点和Block的数据。只是在这个文件的父目录中的Block里,删除这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的Inode节点。当没有文件名指向这个Inode节点的时候,释放Inode节点和存放这个文件数据的Block块会同时进行,并且会更新Inode MAP和Block MAP,以便让这些位置用于放置其他文件数据。

  • 从文件引用的角度深入描述文件删除的原理

Linux系统是通过Link的数量来控制文件是否被删除的,只有当一个文件不存在任何Link的时候,这个文件才会被删除。一般来说,每个文件都有2个Link计数器,既i_counti_nlink

i_nlink的意义就是前面讲的文件硬链接的数量,i_nlink可以理解为磁盘的引用计数器;i_count的意义就是当前文件使用者(例如,被进程调用)的数量,i_count可以理解为内存的引用计数器。当为文件创建硬链接的时候,对应i_nlink的数量就会增加,而当一个文件被某个进程调用时,对应i_count的数量就会增加。

通过rm删除命令删除文件,实际上就是减少文件的磁盘引用计数i_nlink的数量。这里就会出现一个问题,如果一个文件正在被某个进程调用,而用户却执行rm操作将文件删除了,那么会出现什么结果呢?

在用户执行rm操作删除文件之后,再执行ls或者其他文件管理命令,将会无法再找到这个文件,但是调用这个被删除文件的进程却在继续正常执行,依然能够从文件中正确地读取及写入内容。这又是为什么呢?

这是因为rm操作只是将文件的i_nlink数减少了,如果没其他的链接,i_nlink就为0了;但由于该文件依然在被进程引用,因此,此时文件对应的i_count数并不为0,所以即使执行了rm操作,但系统并没有真正删除这个文件,因此该文件还会占用磁盘空间,只有当i_nlink及i_count都为0的时候,这个文件才会真正被删除。也就是说,还需要解除该进程对该文件的调用,被rm删除的文件才会真正被删除。

以上讲的i_nlink及i_count是文件删除的真实条件,但是当文件没有被调用时,执行rm操作删除文件后是否还可以找回被删的文件呢?

前面说了,rm操作只是将文件的i_nlink减少了,或者说置0了,实际就是将文件名到Inode的链接删除了,此时,并没有删除文件的实体即Block数据块,如果及时停止机器工作,数据还是可以找回的,但如果此时继续写入数据,那么新的数据可能就会被分配到被删除数据的Block数据块了,此时,文件就是被真正地回收了,那时就是神仙也没有办法了。

2.4 用户和用户组

Linux是一个多用户、多任务操作系统。支持多个用户账号登录系统,当然用户基本是使用SSH客户端等远程工具登录服务器。只要具有相关用户的权限,任何人都可以访问服务器。

通过建立不同属性的用户实现不同的作用或权限,一方面可以合理的利用和控制系统资源,另一方面可以帮助用户组织文件,提供对用户文件的安全性保护。每个用户都有唯一的用户名和密码。

用户

对于Linux系统来讲,用户的角色是通过 UIDGID 来进行识别的。特别是 UID,一个 UID 是唯一标识一个系统用户的账号(类似身份证)。

所以用户系统账号的用户名是实际只是给人看的,系统识别是靠UID和GID。

  • UID :即用户ID,相当于公民的身份证号,在系统中是唯一的。
  • GID :即组ID,相当于将用户分组,类似于户口上的户籍地址(家庭ID)。

可以通过 id 命令查看用户身份。

超级用户(root)
  • root用户是系统中的超级用户管理员,UID和GID都是0。通过它可以操作系统中的任何文件和命令,拥有最高的管理权限。

  • 在生产环境中,一般情况下,不会允许root账号通过SSH远程连接服务器,也不会使用默认的SSH端口进行连接,以加强系统的安全。所以,如果没有特殊需求,应该尽量在普通用户下进行操作,而不是root下。

  • 普通用户通过 sudo 命令提权,这样可以细致到每个命令的权限分配。

普通用户
  • 此类用户一般是由具备系统管理员root权限的运维或系统管理员人员添加的。普通用户仅具备操作自己家目录中的文件及目录的权限。对于其他部分文件仅有查看权限。

  • 除此之外,还可以进入或浏览相关目录(如/etc、/var/log),但是无法创建、修改和删除任何文件。

  • 普通用户可以通过命令:su -su - root 切换到root用户角色。sudo 命令只能对命令提权,两者有本质的区别。

  • 普通用户的UID,C6默认是从500开始(500-60000);C7默认是从1000开始(1000-60000)

虚拟用户
  • 虚拟用户是安装系统之后默认就存在的。他们是系统正常运行不可缺少的,他们存在的只要是为了方便系统管理,满足相应的系统进程对文件属主的要求,但又不会带来管理风险。

  • 虚拟用户是实际存在的,但是用作不能登录系统。

  • 实质上,虚拟用户在Linux系统中是用来完成一些特定任务的用户。其UID范围是1-499,不会与其他类型账号冲突。

  • 由于服务器业务角色的不同,一部分用不到的系统服务会被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了的服务所对应的虚拟用户也可以处理掉(删除或注释)。

用户组(group)

  • Linux系统中的用户组(group)就是具有相同特征的用户集合。对于需要赋予相同权限的用户,可以将他们划分到一个用户组里,然后通过修改文件或目录的用户组权限,让用户组具有符合需求的操作权限。

  • 将用户分组是Linux系统(Windows中也是一样的)中对用户进行管理及控制访问权限的一种手段,定义用户组,可以在很大程度上简化运维管理的工作。

  • 用户组也是给人看,用户组也有唯一标识,Group ID 简称GID。默认情况创建用户,并没有创建用户组啊,它会自动创建一个和用户名相同的用户组以及相同的GID。

  • 用户与用户组的对应关系有:一对一、一对多、多对多、多对一。

    • 一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。比如,root。
    • 一对多:即一个用户可以存在多个组中,这个用户就具有这些组。
    • 多对一:即多个用户可以存在一个组中,这些用户这些组的共同权限。
    • 多对多:即多用户可以存在于多个组中。并且几个用户可以归属相同的组; 其实多对多的关系是前面三条的扩展。

在这里插入图片描述

2.5 修改时间属性列

  • 此处显示的是文件的最后修改时间(modifty)。

  • 文件的时间类型分为三种:访问时间(Access)、修改时间(modify)、更改时间(change)。

    • 访问时间:表示文件最后被访问的时间。

    • 修改时间:表示文件内容最后被修改的时间。

    • 更改时间:表示文件的状态(属性)最后被更改的时间。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值