md5sum
md5sum 是一个用于计算和校验文件报文摘要的工具程序。
补充说明
md5sum
命令采用 MD5 报文摘要算法(128 位)来计算和检查文件的校验和。一般来说,安装了 Linux 后,就会拥有 md5sum
这个工具,可以直接在命令行终端中使用。
MD5 算法常常被用来验证网络文件传输的完整性,以防止文件被篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5)。该算法对任意长度的信息逐位进行计算,生成一个二进制长度为 128 位(十六进制长度为 32 位)的“指纹”(或称“报文摘要”)。不同的文件产生相同的报文摘要的可能性极小。
语法
代码语言:javascript复制md5sum [选项] [参数]
选项
-b
:以二进制模式读取文件。-t
或--text
:将输入文件视为文本文件。-c
:从指定文件中读取 MD5 校验和,并进行校验。--status
:在验证成功时不输出任何信息。-w
:当校验不正确时给出警告信息。
参数
- 文件:指定保存有文件名和校验和的文本文件。
实例
使用 md5sum
生成密码:
另一种获取可用作密码的随机字符串的方法是计算 MD5 校验值!校验值看起来确实像是随机字符串组合在一起,我们可以将其作为密码。确保你使用的计算源是一个变量,这样每次运行命令时生成的校验值都会不同。例如,date | md5sum
命令每次运行都会生成不同的输出。
[root@localhost ~]# date | md5sum
6a43f2c246cdc3e6a3592652f831d186 -
生成文件 insert.sql
的 MD5 值:
[root@localhost ~]# md5sum insert.sql
bcda6cb5c704664f989703ac5a88f112 insert.sql
检查文件 testfile
是否被修改过:
首先生成 MD5 文件:
代码语言:javascript复制md5sum testfile > testfile.md5
进行检查:
代码语言:javascript复制md5sum testfile -c testfile.md5
如果文件没有发生变化,输出应如下所示:
代码语言:javascript复制testfile: OK
此时,md5sum
命令将返回 0
。
如果文件发生了变化,输出应如下所示:
代码语言:javascript复制testfile: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
此时,md5sum
命令将返回非 0
。
这里,检查时所使用的文件名是任意的。如果不想有任何输出,则可以使用 md5sum testfile --status -c testfile.md5
命令,并通过返回值来检测结果。
在检测时,如果文件非法,则输出信息的选项为:
代码语言:javascript复制md5sum -w -c testfile.md5
输出后,如果文件异常,输出类似于以下内容:
代码语言:javascript复制md5sum: testfile.md5: 1: improperly formatted MD5 checksum line
md5sum: testfile.md5: no properly formatted MD5 checksum lines found
在这里,testfile.md5
只有一行信息,但我认为在其后面多加了一个字符,导致非法。如果 MD5 文件正常,无论是否使用 -w
选项输出都是一样的。
su
su 用于切换当前用户身份到其他用户身份。
补充说明
su
命令用于将当前用户身份切换为其他用户身份,切换时需要输入要切换到的用户帐号和密码。
语法
代码语言:javascript复制su [选项] [参数]
选项
-c <指令>
或--command=<指令>
:执行指定的指令后,恢复原用户身份。-f
或--fast
:适用于 csh 和 tsch,使 shell 不需要读取启动文件。-l
或--login
:在改变身份时,同时改变工作目录、HOME、SHELL、USER 和 logname。此外,也会变更 PATH 变量。-m
,-p
或--preserve-environment
:在变更身份时,不要变更环境变量。-s <shell>
或--shell=<shell>
:指定要执行的 shell。--help
:显示帮助信息。--version
:显示版本信息。
参数
- 用户:指定要切换身份的目标用户。
实例
将帐号切换为 root,并在执行 ls
指令后切回原使用者:
su -c ls root
将帐号切换为 root,并传入 -f
选项给新执行的 shell:
su root -f
将帐号切换为 test,并将工作目录切换到 test 的家目录:
代码语言:javascript复制su - test