-- 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 --