utmpdump命令

-- TOC --

utmpdump命令可以将系统登录信息文件导出成为一个ASCII文本文件,也可以反过来,将ASCII文件转成保存登录信息的文件。

关于登录信息文件及相关查询命令,请参考:lasb和lastb命令

导出wtmp文件:

$ utmpdump /var/log/wtmp > a.txt
Utmp dump of /var/log/wtmp
$ utmpdump /var/log/wtmp -o a.txt
Utmp dump of /var/log/wtmp

此时,我们就可以用vim编辑a.txt。

编辑后,再用utmpdump覆盖原wtmp文件:

$ sudo bash -c 'utmpdump -r < a.txt > /var/log/wtmp'  # 下面有解释
Utmp undump of /dev/stdin
$ cat a.txt | sudo utmpdump -r -o /var/log/wtmp
Utmp undump of /dev/stdin

以上两种命令写法都OK,但是如果写成下面这样,就必须是root用户:

# utmpdump -r < a.txt > /var/log/wtmp  # only root

解释一下,为什么要使用bash -c?

因为bash支持的重定向符合,><,也是命令,sudo只是让utmpdump命令的执行者成为了root,但并没有赋予重定向符号的root权限,因此要变通一下。utmpdump在-r时,只有-o参数可以指定输出文件,输入的文件,只能通过重定向。

本文链接:https://cs.pynote.net/sf/linux/shell/202208251/

-- EOF --

-- MORE --