Добавьте функцию, которая не гарантирует ни группы, ни доступа к миру при создании нового файла истории, но не изменяет текущие права доступа к файлу.
Это довольно специфично для POSIX.
Это POSIX.
Я не понимаю, почему существует ограничение на установку разрешений для файла в вашем .profile или другой конфигурации оболочки? В настройках вашей оболочки должна быть маска для создания файла ...
umask 077 блокирует доступ пользователей и групп ко всем вашим новым файлам. Исправление этого оставляет все остальное, что делает пользователь, незащищенным, поскольку они не устранили настоящую проблему: неправильную маску.
@Sonophoto на самом деле это вспомогательная функция, позволяющая убедиться, что создается только файл истории, следуя только пользовательской части маски режима создания. Идея состоит в том, чтобы не влиять на файлы для всего приложения пользователя. Поскольку файлы истории могут содержать конфиденциальную информацию, рекомендуется убедиться, что только пользователь будет иметь к ней доступ. И, тем не менее, при желании пользователь может потом изменить это. Это причина, по которой его не помещают в глобальную маску.
Может быть, это должен сделать Redis?
Я понимаю ваш вариант использования, и вы правы, что историю Redis обязательно нужно беречь. С такой идеей сложно поспорить! ;-)
Я также мог понять, что это может применяться в целом к CLI, но я думаю, что это применимо ко всему в целом, что создает любой файл конфигурации или файл истории любого типа в пространстве пользователя. umask в .profile защищает все файлы конфигурации и истории от создания g + rwx, o + rwx
@Sonophoto В любом случае я уже отправил патч для Redis, но раньше не понимал, что бельевой шум был от того же автора.
Что касается функции, идея была просто абстрактной маскировкой «частной» истории. Я все еще думаю, что кому-то может быть полезно иметь эту абстракцию в библиотеке.
Я думаю, вы абсолютно правы, что redis должен заботиться о безопасности, и я согласен с тем, что история команд никогда не должна быть доступна для чтения всем. Очень важно! и спасибо за ваши усилия :-)
Мне не нравится идея жертвовать переносимостью только ради этой функции, по крайней мере, она должна стоять за #define. Я почти уверен, что есть много пользователей Linenoise, которые не используют POSIX-совместимую libc.
Привет, @OlliV , я добавил некоторую проверку, чтобы опубликовать эту функцию только в системах POSIX, поэтому пока не буду нарушать работу других систем. Спасибо :)
Здравствуйте, я применил патч для устранения этой ошибки, он использует системные вызовы POSIX, но весь шум предполагает, что существует среда POSIX, поэтому ... мы не уменьшаем переносимость AFAIK.
Самый полезный комментарий
Привет, @OlliV , я добавил некоторую проверку, чтобы опубликовать эту функцию только в системах POSIX, поэтому пока не буду нарушать работу других систем. Спасибо :)