`sudo less ...` 应该改变 `~/.lesshst` 的所有权吗?

`sudo less ...` 应该改变 `~/.lesshst` 的所有权吗?

执行了

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 的历史记录:sudoHOME

sudo -H less ...

另一个选择是暂时禁用搜索历史记录:

sudo LESSHISTFILE=- less ...

但这确实意味着您将无法使用存储的搜索历史记录(/后跟,甚至n不指定搜索字符串)。

相关内容