Linenoise: Função para salvar o histórico como arquivo privado por padrão

Criado em 18 jun. 2016  ·  9Comentários  ·  Fonte: antirez/linenoise

Adicione uma função que não garanta nenhum grupo ou acesso mundial ao criar um novo arquivo de histórico, mas não altere a permissão do arquivo atual.

Comentários muito úteis

Olá @OlliV , adicionei algumas validações para publicar essa função apenas em sistemas POSIX, então não vou quebrar outros sistemas por enquanto. Obrigado :)

Todos 9 comentários

Isso é bem específico do POSIX.

Isso é POSIX.

Não entendo por que há uma restrição na configuração das permissões do arquivo em seu .profile ou outra configuração de shell. É suposto haver um umask para a criação de arquivo em sua configuração de shell ...

umask 077 bloqueia o acesso do usuário e do grupo a todos os seus novos arquivos. Corrigir isso deixa tudo o mais que o usuário está fazendo exposto, uma vez que eles não corrigiram o problema real: um umask incorreto.

@Sonophoto, na verdade, é uma função auxiliar para garantir que apenas o arquivo de histórico seja criado seguindo apenas a parte do usuário da máscara do modo de criação. A ideia é não afetar os arquivos para todo o aplicativo do usuário. Como os arquivos de histórico podem conter informações confidenciais, é uma boa prática certificar-se de que apenas o usuário terá acesso a eles. E, ainda, se o usuário quiser, ele pode alterá-lo depois. Essa é a razão para não colocá-lo em uma umask global.

Talvez devesse ser o Redis que faz isso?
Eu entendo seu caso de uso e você está correto ao dizer que o histórico do Redis definitivamente deve ser guardado. É difícil argumentar contra essa ideia! ;-)

Eu também poderia entender que isso poderia se aplicar em geral a CLIs, mas acho que se aplica a tudo em geral que está criando qualquer tipo de arquivo de configuração ou arquivo de histórico de qualquer tipo no espaço dos usuários. umask no .profile protege todos os arquivos de configuração e histórico de serem criados g + rwx, o + rwx

@Sonophoto Já enviei o patch para o Redis de qualquer maneira, não sabia antes que o ruído de linha era do mesmo autor.
Em relação à função, a ideia era apenas abstrair o mascaramento da história 'privada'. Ainda acho que pode ser útil para alguém ter essa abstração disponível na biblioteca.

Acho que você está absolutamente certo de que o redis deve se preocupar com a segurança e concordo que o histórico de comandos nunca deve ser legível por todos. Muito importante! e obrigado por seus esforços :-)

Não gosto da ideia de sacrificar a portabilidade apenas por esse recurso, pelo menos deveria estar atrás de um #define. Tenho certeza de que há muitos usuários de ruído de linha que não estão usando uma libc compatível com POSIX.

Olá @OlliV , adicionei algumas validações para publicar essa função apenas em sistemas POSIX, então não vou quebrar outros sistemas por enquanto. Obrigado :)

Olá, apliquei um patch para resolver esse bug, ele usa chamadas de sistema POSIX, mas todo linenoise assume que existe um ambiente POSIX, então ... não estamos diminuindo a portabilidade AFAIK.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

fatcerberus picture fatcerberus  ·  5Comentários

krux02 picture krux02  ·  8Comentários

JelteF picture JelteF  ·  8Comentários

ozancaglayan picture ozancaglayan  ·  21Comentários

ghost picture ghost  ·  4Comentários