执行了
sudo less ...
...为了查看受限日志文件并对其进行一些搜索,我发现~/.lesshst
文件的所有权和组更改为root:root
(其中~
指的是调用命令的用户的主目录sudo
,而不是 的主目录root
,明显地)。
这是在新安装的 Ubuntu 18.04 上发生的less --version
:
less 487 (GNU regular expressions) Copyright (C) 1984-2016 Mark Nudelman
我找不到(谷歌)任何人观察的参考资料,更不用说在任何地方解释这种行为了;所以我在这里寻找它的理由或者确认这只是错误的迹象。
答案1
这个是正常的。
sudo less ...
以 root 身份运行less
,但不更改主目录。运行搜索会导致搜索历史记录在 中更新~/.lesshst
,这会将文件的所有权更改为当前用户 root(为了确保更新可以安全地完成,less
将历史记录写入新的临时文件,然后重命名;这会导致原始文件的所有权将丢失)。
如果你想避免这种情况,你可以通过告诉设置变量指向 root 的主目录来less
使用 root 的历史记录:sudo
HOME
sudo -H less ...
另一个选择是暂时禁用搜索历史记录:
sudo LESSHISTFILE=- less ...
但这确实意味着您将无法使用存储的搜索历史记录(/后跟↑,甚至n不指定搜索字符串)。