Loading

网络安全-系统文件及用户

系统文件属性及用户相关

系统文件属性

文件属性组成介绍

1640009021672

文件类型分类

01	- ※	英文名称为regular file,表示普通文件,包含纯文本 二进制文件 数据文件等
02	d ※	英文全程为directory,代表目录
03	l ※	英文全程link,代表符号链接或软链接文件,类似于windows系统快捷方式。
04	c	英文全程character,代表字符设备文件,例如:串口设备,早期上网拨号用的猫
05	b ※	英文全程block,代表块设备文件,例如:硬盘 光驱
06	s	英文全程socket,代表套接字文件,进程之间进行通信是会用到
07	p	英文全程named pipe,表示管道文件,主要作用是控制服务进程读取或加载文件

# 查看文件类型
ls -l或ls -al
# 显示文件具体类型信息
file [option] [file]

文件类型详细说明

# 纯文本文件(ASCII):
此类文件的文件内容可以直接读取到数据,例如:字母、数字、特殊符号等。
可以用cat命令读文件,比如Linux系统里的配置文件几乎都是这种类型。
[root@hkw ~]# file /etc/hosts

# 二进制文件(binary):可执行文件
Linux中的常见命令就属于这种文件类型。
例如:cat命令就是一个二进制文件,部分脚本代码文件也属于可执行文件。
[root@hkw ~]# file /bin/cat

# 数据格式文件(data)
有些程序在运行的过程中会读取某些特定格式的文件,那些特定格式的文件即称为数据文件。
例如:Linux在用户登录时都会将登录的数据记录在/var/log/wtmp文件内,该文件时一个数据文件;某些系统中被压缩处理的文件,也可以称为数据文件。数据性文件一般为压缩包文件
[root@hkw ~]# file /var/log/wtmp

# 目录文件(directory):
[root@hkw ~]# file /var/log/
# 利用ls -F命令的执行结果,可以在不同文件的结尾加上特殊标识,用以区分文件。
[root@hkw ~]# ls / -F
bin@  boot/  dev/  etc/  home/  lib@  lib64@  media/  mnt/  opt/  proc/  root/  run/  sbin@  srv/  sys/  tmp/  usr/  var/
# 说明:/标识为目录 @标识为链接文件

# 符号链接(symbolic link)文件:
符号链接文件也称为软链接文件,它类似于windows下的快捷方式。
# 软链接
ln -s 源文件名 链接文件名
# 如果不使用-s参数,则表示创建硬链接文件

# 字符(character)/块(block)设备文件:
在查看/dev目录特定文件的属性信息时,会看到如下内容:
[root@hkw ~]# file /dev/tty /dev/sda1
/dev/tty:  character special
/dev/sda1: block special
/dev/tty文件的属性信息中,第一个字符是c,表示为字符设备文件:
对于字符设备,一般典型的文件就是串行端口的接口设备,如猫等串口设备。
/dev/sda文件的属性信息中,第一个字符是b,表示为块设备文件:
块设备就是存储数据供系统及程序访问的接口设备,如硬盘、光驱等都均属于块设备

# 套接字(socket)文件
当启动数据库软件MySQL服务时,会产生一个mysql.sock文件,这个文件的属性里,第一个字符是s,
表示此文件为套接字文件:
[root@hkw ~]# file /var/lib/mysql/mysql.sock 
.sock文件是一类特殊的文件,这类文件通常在网络之间进行数据连接。
在启动一个网络服务程序后,会监听客户端的请求,客户端可以通过套接字文件来进行数据通信。
mysql -uroot -ppass -S /data/3306/mysql.sock
以上便是mysql数据库客户端程序连接服务器端的命令,并通过套接字文件与数据库服务器进行通信。

# 管道(pipe)文件:
管道文件(FIFO first-in first-out)也是一种特殊的文件类型,主要用于解决多个程序同时访问一个文件所造的冲突问题;文件属性标识符为p。

文件权限

说明:文件属性中的权限位,可以理解为系统基础的9位权限位

- 读权限:`字符标识 r 数值标识 4`
  针对文件来说,主要利用此权限可以实现对文件数据信息的读取。
  针对目录来说:可以看到目录下数据名称信息

- 写权限:`字符标识 w 数值标识 2`
  针对文件来说,主要利用此权限可以实现对文件数据信息的编辑修改。> >>
  针对目录来说:是否可以删除 添加 修改目录下数据名称信息

- 执行权限:`字符标识 x 数值标识 1`
  针对文件来说,主要利用此权限可以实现对脚本或代码文件,以及命令文件的执行功能。
  针对目录来说: 拥有执行权限表示可以切换进入到目录中

- \- 代表0

权限标识	数值表示	含义说明
rwxrw-rw-	766	属主具有可读可写可执行权限 属组和其他用户只具有可读可写权限
rw-r--r--	644	属主具有可读可写权限 属组和其他用户具有可读权限
r---w---x	421	属主具有可读权限 属组具有可写权限 其他用户具有可执行

设置修改权限命令

# chmod [数字组合] 文件名
chmod命令是用来改变文件或目录权限的命令,但只有文件的属主和超级用户root才能执行这个命令。
chmod的数字语法简单直观,可以利用下表进行数字权限设置:
权限	二进制	八进制	权限	二进制	八进制
---	  000	0	   r--	 100	4
--x	  001	1	   r-x	 101	5
-w-	  010	2	   rw-	 110	6
-wx	  011	3	   rwx	 111	7

# 字符式权限
chmod [用户类型] [+|-|=] [权限字符] 文件名
权限命令	用户类型	操作字符	权限字符	数据信息
chmod		u			+			r	文件或目录
 			g			-			w	 
 			o			=			x	 
 			a			 			-	 
# 用户和用户组的定义:
u:代表属主用户(user)
g:代表属组信息(group)
o:代表其他用户(other)
a:或者不写,同时代表ugo(三个用户的所有all权限统一设置)
# 权限定义字母信息
r:代表读权限-数字4表示
w:代表写权限-数字2表示
x:代表执行权限-数字1表示
-:代表没有权限,数字0表示
#权限增减字符详细定义
+:添加权限字符
-:取消权限字符
=:取消其他所有权限,然后赋予给定的权限
# 字符权限基础设置
chmod u-x test.sh
-- 取消用户权限位的x权限
chmod g+w test.sh
-- 用户组权限位增加w权限
chmod u-x,g+w,o-rwx test.sh
-- 用户位取消x权限,用户组增加w权限,其他用户全校rwx权限
chmod ugo=rw test.sh  
-- 所有权限组赋予rw权限
chmod a=rw test.sh      
-- 所有权限组赋予rw权限
chmod +x test.sh
-- 所有权限组增加x权限

数据属主属组修改命令

chown命令用于改变文件或目录的用户和用户组信息。
chown 选项 用户 用户组 文件或目录
# 常用授权命令方式
chown 用户 文件或目录
-- 仅修改文件或目录的属主用户信息
chown :用户组 文件或目录
-- 仅修改文件或目录的属组用户信息(等同于chgrp命令作用)
chown 用户:用户组 文件或目录
-- 同时修改文件或目录的属主和属组用户信息
说明:命令中使用的:也可以用 . 替代;命令中授权的用户和用户组信息在系统中必须存在
参数-R表示递归更改目录的用户和用户组

文件权限管理扩展命令

chattr命令用于改变文件的扩展属性。与chmod命令相比,chmod只是改变了文件读写执行权限;
更底层的属性控制是有chattr来改变的。
说明:简单来说就是chmod对权限的修改并不能限制root用户,但是chattr命令可以有效限制root用户。
# chattr [option] [mode] [file]
01	-R	递归更改目录属性
02	-V	显示命令的执行过程
	mode	 	 
01	+	增加参数
02	-	移除参数
03	=	更新为指定参数
04	A	告诉系统不要修改这个文件的最后访问时间
05	a	只能向文件中添加数据,而不能删除,多用于服务器日志文件安全
06	i	设置文件不能删除,改名、写入或新增内容
# 设置只能向文件里追加内容,但不能删除文件
chattr +a 1.txt
# 对文件加锁,使其只能被读取
chattr +i 1.txt
# 说明:系统中很多重要文件数据,都可以采用上锁方式进行安全保护,从而防止恶意篡改。

lsattr命令可用于查看文件扩展属性
# lsattr [option] [files]
01	-R	递归查看目录的扩展属性
02	-a	显示所有文件包括隐藏文件的扩展属性 类似 ls -a
03	-d	显示目录的扩展属性 类似ls -d dir

系统用户分类

管理用户:(皇帝)root --- uid=0
虚拟用户:(傀儡)nobody --- uid = 1-999
	Linux下面每个程序/进程需要有一个用户和用户组管理;并且虚拟用户无法登录Linux系统。
普通用户:(百姓)xiaoQ --- uid=1000+
	用户信息可以成为管理系统数据、程序或进程的人员,并且也是权限的赋予者。

用户相关配置文件

系统用户相关的配置文件

/etc/passwd   
-- 存储用户信息的文件
/etc/shadow
-- 存储用户密码信息的文件
存储用户信息的文件:/etc/passwd
主要作用是存储系统用户的信息,文件中的每一行表示一个用户信息,有多少行就表示存在多少个用户信息;
每行用户信息会用:分割,总共分割为7个部分,分别定义了用户的不同属性:
# passwd文件中用户每列信息说明:(简述)\
root		:x			:0			:0	  :root		:/root		:/bin/bash
用户名称	用户密码	用户UID	用户组GID	用户说明	用户家目录	shell解释器
# passwd文件中用户每列信息说明:(详述)
# 用户名称:
与用户uid对应,这是用户登录时使用的用户名称,在系统中是唯一的,不能重名。
# 用户密码:
早期unix系统中,此字段用于存放用户密码,基于安全原因,后来将密码字段移动/etc/shadow文件中了
这个位置可以看到一个字母x,表示该用户的密码是保护在/etc/shadow文件中。
# 用户UID:
用户UID一般是由一个整数来表示的,默认范围是0~60000,最大实际可以到65535。
主要系统利用UID编号进行用户信息的识别。
# 用户组GID:
用户GID一般也是由一个整数来表示的,范围和最大值与用户UID相同。
添加用户时,默认情况下会同时建立一个与用户名相同且ID相同的组。
# 用户说明:
对系统用户的作用描述信息,起到注释说明作用
# 用户家目录:
用户登录后默认进入的目录,一般为“/home/用户名”这样的目录
# shell解释器:
当前用户登录后所使用的解释器;centos等主流linux系统中,默认的解释器为bash;
当虚拟用户无法登录系统时,会将解释器信息设置为/sbin/nologin。

用户管理相关命令

# 有关用户管理常见命令汇总介绍:
 	用户直接相关的命令	 
01	useradd	添加用户信息命令
02	usermod	修改用户信息命令
03	userdel	删除用户及与用户有关联的配置或文件
 	用户密码直接相关的命令	 
01	passwd	为用户设置或修改密码
# 用户相关命令详解-useradd
# 在添加用户的同时,会添加与用户名相同的用户组。
useradd === adduser
01	-c comment	设置新用户在passwd文件中的说明字段的信息
02	-d home_dir	新用户每次登陆时使用的家目录
03	-e expire_date	用户终止日期。日期指定格式为YYYY/MM/DD
04	-f inactive_days	用户过期几日后永久停权。当值为0时用户立刻被停权。
而当值为-1时表示关闭此功能,预设值为-1
05	-g initial_group	指定新用户所属的用户组。用户组名需为系统现存的名称
06	-G group,[...]	将新用户指定为多个不同用户组的成员。每个用户组均使用,号进行分割
07	-m	如果家目录不存在,则创建并指定用户家目录
08	-M	不建立用户家目录,其优先于/etc/login.defs文件中的设定
一般创建虚拟用户时不建立家目录,部署网络相关服务时需要创建虚拟用户
09	-n	默认情况下,用户的用户组与用户的名称是相同的。
如果添加了-n参数,就不会生成与用户同名的用户组了。
10	-s shell	用户登入系统后使用的解释器名称,默认为bash
11	-u uid	指定用户ID值,即所谓的uid信息

# useradd命令中-g -u参数的使用
# 创建用户xiaoA,属于指定组root,UID为888
useradd xiaoA -u 888 -g root
-- 使用-g参数创建用户时,不会再单独创建对应的用户组信息

# useradd命令中-M -s参数的使用(用于创建虚拟用户)
# 创建一个虚拟用户mysql,禁止其登录,且不创建家目录
useradd mysql -s /sbin/nologin -M
[root@xiaoq ~]# grep -w mysql /etc/passwd
mysql:x:1000:1000::/home/mysql:/sbin/nologin
[root@xiaoq ~]# grep -w mysql /etc/shadow
mysql:!!:18990:0:99999:7:::
[root@xiaoq ~]# grep -w mysql /etc/group
mysql:x:1000:
[root@xiaoq ~]# grep -w mysql /etc/gshadow
mysql:!::
# 用户相关命令详解-usermod
usermod命令不仅可以更改用户的解释器类型、UID、家目录等,还能更改用户的有效期、登录名等信息。
总之可以实现对用户相关信息的调整修改。
01	-c comment	设置新用户在passwd文件中的说明字段的信息
02	-d home_dir	新用户每次登陆时使用的家目录
03	-e expire_date	用户终止日期。日期指定格式为YYYY/MM/DD
04	-f inactive_days	用户过期几日后永久停权。当值为0时用户立刻被停权。
而当值为-1时表示关闭此功能,预设值为-1
05	-g initial_group	指定新用户所属的用户组。用户组名需为系统现存的名称
06	-G group,[...]	将新用户指定为多个不同用户组的成员。每个用户组均使用,号进行分割
07	-m	如果家目录不存在,则创建并指定用户家目录
08	-M	不建立用户家目录,其优先于/etc/login.defs文件中的设定
一般创建虚拟用户时不建立家目录,部署网络相关服务时需要创建虚拟用户
09	-n	默认情况下,用户的用户组与用户的名称是相同的。
如果添加了-n参数,就不会生成与用户同名的用户组了。
10	-s shell	用户登入系统后使用的解释器名称,默认为bash
11	-u uid	指定用户ID值,即所谓的uid信息
12	-a	追加用户到用户组,仅与-G参数连用
13	-l	修改用户账户名称
14	-L	锁定用户密码
15	-U	解除密码锁定
# usermod命令-e参数修改过期时间
chage -l root
usermod -e "2099/01/01"
# 用户相关命令详解-userdel
# userdel命令主要用于删除用户及用户相关的信息。
01	-f	强制删除用户,即使用户当前已登录
02	-r	删除用户的同时,删除与用户相关的所有文件(慎用)
# 此方法删除用户时,只会删除用户本身,其家目录及用户的相关文件并不会被删除。

# 删除指定用户xiaoA及所有与用户相关的文件目录
userdel -r xiaoQ
# 密码相关命令详解-passwd
passwd命令可以修改用户密码及密码过期时间等信息,是工作中很常用的命令;
普通用户和超级用户都可以使用passwd命令,普通用只能更改自己的用户密码,管理员用户可以设置或修改所有用户的密码。
01	-k	为密码已经过期的用户更新有效期
02	-l	锁定用户,被锁定用户将不能登录。仅root用户有权限使用该选项
03	--stdin	从标准输入读取密码字符串(免交互设置密码)
04	-u	解除对用户的锁定。仅root用户有权使用该选项
05	-d	删除用户的密码,使用密码为空。仅root用户有权限使用该选项
06	-e	使用户密码立即过期,将在用户下次登录时强制用户修改密码。仅root用户有权使用该选项
07	-n	设置修改密码的最短天数。仅root用户有权使用该选项
08	-x	设置修改密码的最长天数。仅root用户有权使用该选项
09	-w	设置用户在密码过期前多少天收到警告的消息。仅root用户有权使用该选项
10	-i	设置密码过期多少天之后禁用账户。仅root用户有权使用该选项
11	-S	显示与用户密码相关的简单描述。仅root用户有权使用该选项
# 说明:修改密码时有复杂度要求,但root用户设置时会忽略密码设置规范,普通用户必须遵循。

# 显示账号密码信息
passwd -S xiaoQ

# 采用非交互方式设置密码
echo "123456" | passwd --stdin xiaoQ

用户查询相关命令

id

# id命令通常用来查询用户与用户组信息以及对应的UID、GID等信息:
[root@hkw ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@hkw ~]# id hkw
uid=1000(hkw) gid=1000(hkw) 组=1000(hkw)
-- 用户和组信息以及对应UID和GID
[root@hkw ~]# id -u hkw
1000
-- 只查看用户UID
[root@hkw ~]# id -g hkw
1000
-- 只查看用户GID
[root@hkw ~]# id -un hkw
hkw
-- 只查看用户名
[root@hkw ~]# id -gn hkw
hkw
-- 只查看用户组名

whoami

# whoami可以用于查看当前登录的用户:
[root@hkw /]# whoami
root
[root@hkw /]# su - hkw
上一次登录:日 9月  3 09:56:36 CST 2023pts/0 上
[hkw@hkw ~]$ whoami
hkw

w

# w命令的作用是显示已经登录的用户,并且展示用户在做什么操作:
[root@hkw /]# w
 10:09:42 up 1 day,  8:24,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM         LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1     09:45    6.00s  0.11s  0.00s w
root     pts/1    10.0.0.1     六08   11:41m  0.17s  0.17s -bash
# 以下是上述w命令输出结果的格式说明:
# 第一行的输出依次显示了当前的系统时间、系统从启动到现在已经运行的时间、登录到系统中的用户数和系统平均负载。load average平均负载是指在1分钟、5分钟、15分钟之内系统的负载状况。
USER:表示登录系统的用户
TTY:表示用户使用的TTY(连接方式)(pts远程 tty本地)
FROM:表示用户从哪里登录进来,一般是显示远程登录主机的IP地址或或者主机名
LOGIN@:用户登录的日期和时间
IDLE:显示终端空闲时间
JCPU:表示该终端上所有进程及子进程使用系统的总时间
PCPU:当前活动进程使用的系统时间
WHAT:当前用户执行的进程名称和选项

who

# who命令主要用于显示哪些用户正在登录、登录的终端及登录时间,来源主机,显示的信息比w少,不常用
[xiaoQ@xiaoq ~]$ who
root     pts/0        2021-12-30 13:08 (10.0.0.1)
root     pts/1        2021-12-30 19:17 (10.0.0.1)
root     pts/2        2021-12-30 19:17 (10.0.0.1)
名称     线路           时间
-- 名称:用户的登录名
-- 线路:类似于pts/1、pts/2等,此线路标识在/dev目录中可以找到
-- 时间:用户登录系统的时间

last/lastlog

# last/lastlog命令可以查看用户更详细的登录信息:
[xiaoQ@xiaoq ~]$ last
-- 显示已经登录的用户列表及登录时间等,查看的信息与/var/log/wtmp及/var/log/btmp两个文件有关
[xiaoQ@xiaoq ~]$ lastlog 
-- 报告最近的所有系统用户的登录信息,查看的信息与/var/log/lastlog日志有关

用户之间切换命令

su [option] [user]
# 说明:su命令信息如果省略,表示默认切换为root用户。
01	-,-l,--login	使一个shell成为登录的shell
如果执行su - xiaoQ时,表示该用户希望改变的身份为xiaoQ;
并且使用xiaoQ用户对应的环境变量配置
02	-c,--command=COMMAND	切换到一个shell下,执行一个命令,然后退出所切换的用户环境
03	-m,--preserve-environment	切换用户时,不需要重置用户环境变量,-p的功能同-m,
这个参数为su的默认值,一般较少使用
04	-s,--shell=SHELL	如果/etc/shells允许,则运行指定shell
# 在生产场景中,su命令比较常用的参数为“-”和“-c”
-- 使用 - 参数切换后,系统默认的环境变量配置信息也随用户切换发生变化

# 知识点总结:
su 用户名:虽然能切换到对应用户,但是登录后的环境变量信息有些还是切换前的用户的环境变量信息。
(推荐) su - 用户名:不但能切换到相应的用户,还能将登录后的环境变量一并切换,这是更为标准规范操作。

用户特权

用户特权设置方法

visudo命令是专门用来编辑/etc/sudoers这个文件的,同时它还提供了语法检查等功能。
visudo命令等价于vim /etc/sudoers文件。
说明:visudo命令本身可以实现自动语法检查功能;vim直接编辑文件不具有语法检查功能。
01	-c	手动执行语法检查
# 执行visudo对普通用户xiaoQ和xiaoB授权
[xiaoQ@xiaoq ~]$ visudo
100 root     ALL=(ALL)       ALL
101 xiaoQ   ALL=(ALL)       ALL
-- 将xiaoQ授予root用户所有操作的能力
102 xiaoB   ALL=(ALL)       /sbin/useradd, /sbin/userdel
-- 授权xiaoB可以以root身份添加和删除用户权限

# 上述授权内容对应的配置信息说明:
待授权的用户或用户组	机器=(授权角色)	可以执行的命令
xiaoQ	ALL=(ALL)	ALL
xiaoB	ALL=(ALL)	/sbin/useradd

# 对文件配置信息进行语法检查
[root@hkw opt]# visudo -c
/etc/sudoers:解析正确

用户特权使用方法

# root给普通用户特权设置后,普通用户并不能直接的使用特权,而是要加上sudo命令,相当于拿着令牌去使用特权才可以。

sudo命令可以让普通用户在执行指定的命令或操作指定的程序时,拥有超级用户的权限。
并且可以做权限的精细控制管理,同时普通用户不需要知道root密码就可以得到授权,这个授权可以使用visudo
sudo [option] command
01	-l	列出当前用户可以执行的特权命令。只有sudoers文件里的用户才能使用该选项
02	-h	列出使用方法,并退出
03	-H	将环境变量中的HOME指定为要变更身份的使用者家目录
如果不加-u参数就是系统管理者root
04	-V	显示版本信息,并退出
05	-v	sudo如果是第一次执行,或者是在N分钟内没有执行(N预设为5),则会询问密码
这个参数用于重新做一次确认
06	-u	以指定用户的身份执行命令。后面是除root之外的用户,可以是用户名,也可以是uid
07	-k	清除时间戳上的时间,下次再使用sudo时还需要再次输入密码
08	-K	与-k类似,同时还要删除时间戳文件
09	-b	在后台执行指定的命令
10	-p	可以更改询问密码时的提示语
11	-e	不执行命令,而是修改文件,相当于命令sudo edit

# 查看用户被visudo授权后拥有的权限
sudo -l
# 实现免密码执行特权操作
[root@xiaoq ~]# visudo 
xiaoQ   ALL=(ALL)       NOPASSWD: ALL
xiaoB   ALL=(ALL)       NOPASSWD: /sbin/useradd, /sbin/userdel
-- 可以实现免密码操作特权命令
[xiaoQ@xiaoq ~]$ sudo -k
[xiaoQ@xiaoq ~]$ sudo -l
-- 再次执行特权操作,无需输入任何密码信息

时间相关

文件时间信息

# 文件时间信息分类:
文件修改时间:mtime(modified time)(更加关注)
当文件信息内容发生变动时,会修改调整此时间信息。
文件访问时间:atime(access time)
当文件信息内容访问读取时,会修改调整此时间信息。
文件改变时间:ctime(change time)
当文件属性状态发生变动时,会修改调整此时间信息。
[root@hkw ~]# stat /etc/hosts



系统时间信息操作命令

# date [option] [+FORMAT]
 	OPTION参数选项	 
01	-d 时间字符串	显示指定字符串所描述的时间,而非当前时间
02	-f 时间文件	从日期文件中按行读入时间描述
03	-r 文件	显示指定文件的最后修改时间
04	-s 日期时间	设置系统时间
05	-u	显示或设置UTC时间
 	FORMAT日期格式	 
01	%a	星期名缩写(如Tue代表星期二)
02	%A	星期名全称(如Tuesday,星期二)
03	%b	月名缩写(Aug 代表八月)
04	%B	月名全称(August 代表八月)
05	%F	完整的日期格式,等价于%Y-%m-%d(如2019-08-18)
06	%y	年份的最后两位简写(20年)
07	%Y	年份的完整书写方式(2020年)
08	%m	月份信息(01-12)
09	%M	分钟信息(00-59)
10	%d	每月的第几天
11	%D	等于%m%d%y(如 08/18/15)
12	%T	时间信息,等价于%H:%M:%S(14:30:50)
13	%H	24小时制(00-23)
14	%I	12小时制(00-12)
15	%S	秒信息(00-60)
# 常用时间格式输出信息
[root@xiaoq ~]# date +%y
21
-- 显示年份信息(短格式)
[root@xiaoq ~]# date +%Y
2021
-- 显示年份信息(长格式)
[root@xiaoq ~]# date +%m
12
-- 显示月份信息
[root@xiaoq ~]# date +%d
23
-- 显示日期信息
[root@xiaoq ~]# date +%H
14
-- 显示小时信息
[root@xiaoq ~]# date +%M
10
-- 显示分钟信息
[root@xiaoq ~]# date +%S
10
-- 显示秒信息
[root@xiaoq ~]# date +%F
2021-12-23
-- 显示特殊格式日期信息
[root@xiaoq ~]# date +%T
14:10:19
-- 显示特殊格式时间信息

# 通过参数-d显示未来或过去的时间情况
# 显示过去的时间
[root@xiaoq ~]# date +%F -d "-1day"
2021-12-22
[root@xiaoq ~]# date +%F -d "yesterday"
2021-12-22
# 显示未来的时间
[root@xiaoq ~]# date +%F -d "+1day"
2021-12-24
[root@xiaoq ~]# date +%F -d "tomorrow"
2021-12-24
[root@xiaoq ~]# date +%F -d "1month"
2022-01-23
[root@xiaoq ~]# date +%F -d "1year"
2022-12-23
[root@xiaoq ~]# date +%F -d "24hour"
2021-12-24
[root@xiaoq ~]# date +%T -d "24min"
14:41:15

# 过参数-s设定时间(主要用于某些测试-- 定时服务进行测试)
[root@xiaoq ~]# date -s 20170706
Thu Jul  6 00:00:00 CST 2017
[root@xiaoq ~]# date -s 00:10:05
Thu Jul  6 00:10:05 CST 2017
[root@xiaoq ~]# date -s "00:00:03 20170506"
Sat May  6 00:00:03 CST 2017
[root@xiaoq ~]# date -s "00:00:03 2017-05-07"
Sun May  7 00:00:03 CST 2017
[root@xiaoq ~]# date -s "00:00:03 2017/05/08"
Mon May  8 00:00:03 CST 2017

文件链接

在Linux系统中,链接可分为两种:
    硬链接(hard link):ln 原始文件 目标文件(硬链接文件)
    软链接(soft link):ln -s 原始文件 目标文件(软链接文件)
硬链接(hard link):
    是指通过索引节点进行的链接,当多个文件名指向同一个索引节点,这种情况下的两个文件就称为互为硬链接文件。
    硬链接的作用是允许一个文件拥有多个有效的文件名,可以建立硬链接到重要的文件上,避免误删造成的影响。
    说明:对于硬链接创建操作,只能对普通文件进行操作,不能对目录文件创建硬链接。
软链接(soft link)
	也称为符号链接(symblic link,symlink),实质就是类似于windows系统中的快捷方式。
# 硬链接(hard link)特点总结:
具有相同inode节点号的多个文件互为硬链接文件,本质上是相同文件数据的不同访问入口文件。
删除硬链接文件或者删除源文件任意之一,文件实体并未删除。
只有删除了源文件及源文件对应的所有硬链接文件,文件实体才会被删除。
只有所有的硬链接文件及源文件均被删除之后,再存放新的数据时,新数据才会占用这个文件存储空间。
可以通过对文件设置硬链接文件,来防止重要文件被删除 (不经常改动的并尺寸容量比较大的文件)
硬链接文件类型属于普通文件
硬链接只能针对文件,不能针对目录

# 软链接(soft link)特点总结:
软链接类似于windows的快捷方式,链接文件中会存放指向源文件的路径信息。
删除源文件,软链接文件依然存在,但是无法访问并指向源文件路径的实体内容。
软链接失效的时候一般是白色红底闪烁提示
软链接和源文件是不同类型的文件,也是不同的文件,inode号也不相同
软链接文件不仅可以针对文件,还可以针对目录。
posted @ 2023-09-05 21:18  hkwJsxl  阅读(5)  评论(0编辑  收藏  举报