Linenoise: 默认情况下将历史保存为私人文件的功能

创建于 2016-06-18  ·  9评论  ·  资料来源: antirez/linenoise

添加一个功能,在创建新历史文件时保证没有组或世界访问,但不更改当前文件权限。

最有用的评论

你好@OlliV ,我已经添加了一些验证来仅在 POSIX 系统上发布该功能,所以现在不会破坏其他系统。 谢谢 :)

所有9条评论

那是非常特定于 POSIX 的。

那就是POSIX。

我不明白为什么在 .profile 或其他 shell 配置中设置文件权限有限制? 应该有一个 umask 用于在您的 shell 设置中创建文件...

umask 077 阻止用户和组访问您的所有新文件。 解决这个问题会暴露用户正在做的所有其他事情,因为他们没有解决真正的问题:不正确的 umask。

@Sonophoto实际上它是一个帮助函数,可确保仅在创建模式掩码的用户部分之后创建历史文件。 这个想法是不影响用户整个应用程序的文件。 由于它们的历史文件可能包含敏感信息,因此最好确保只有用户才能访问它。 而且,如果用户愿意,他可以事后更改。 这就是不将其放入全局 umask 的原因。

也许应该是 Redis 做到这一点?
我理解你的用例,你是对的,Redis 历史绝对应该受到保护。 很难与这个想法争论! ;-)

我也可以理解这通常适用于 CLI,但我认为它通常适用于在用户空间中创建任何类型的配置文件或任何类型的历史文件的所有内容。 .profile 中的 umask 保护所有配置和历史文件不被创建 g+rwx, o+rwx

@Sonophoto无论如何,我已经提交了 Redis 的补丁,之前没有意识到 linenoise 来自同一作者。
关于功能,这个想法只是抽象的“私人”历史屏蔽。 我仍然认为在库中提供这种抽象可能对某人有用。

我认为 redis 应该具有安全意识是绝对正确的,我同意命令历史永远不应该是世界可读的。 很重要! 并感谢您的努力:-)

我不喜欢仅仅为了这个特性而牺牲可移植性的想法,至少它应该在#define 之后。 我很确定有很多 linenoise 用户没有使用兼容 POSIX 的 libc。

你好@OlliV ,我已经添加了一些验证来仅在 POSIX 系统上发布该功能,所以现在不会破坏其他系统。 谢谢 :)

你好,我应用了一个补丁来解决这个错误,它使用 POSIX 系统调用,但所有的 linenoise 都假设有一个 POSIX 环境,所以......我们不会降低可移植性 AFAIK。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ozancaglayan picture ozancaglayan  ·  21评论

JelteF picture JelteF  ·  8评论

ghost picture ghost  ·  4评论

fatcerberus picture fatcerberus  ·  5评论

krux02 picture krux02  ·  8评论