前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【linux命令讲解大全】183.Linux 常用工具之 md5sum 和 su

【linux命令讲解大全】183.Linux 常用工具之 md5sum 和 su

作者头像
全栈若城
发布2024-03-02 14:35:30
1290
发布2024-03-02 14:35:30
举报
文章被收录于专栏:若城技术专栏

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 命令每次运行都会生成不同的输出。

代码语言:javascript
复制
[root@localhost ~]# date | md5sum
6a43f2c246cdc3e6a3592652f831d186  -

生成文件 insert.sql 的 MD5 值:

代码语言:javascript
复制
[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 指令后切回原使用者:

代码语言:javascript
复制
su -c ls root

将帐号切换为 root,并传入 -f 选项给新执行的 shell:

代码语言:javascript
复制
su root -f

将帐号切换为 test,并将工作目录切换到 test 的家目录:

代码语言:javascript
复制
su - test
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • md5sum
    • 补充说明
      • 语法
      • 选项
      • 参数
    • 实例
    • su
      • 补充说明
        • 语法
        • 选项
        • 参数
      • 实例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档