Verificação de permissão no arquivo de perfil no diretório inicial: deve ser feito?

0

Digamos que estou implementando uma linguagem de programação que tenha um modo interativo e que o modo interativo leia algum arquivo ~/.foo_rc no diretório pessoal do usuário. O arquivo contém código nesse idioma que pode ser usado para personalizar algumas preferências. A linguagem não está em sandbox ao ler este arquivo; o arquivo pode fazer "qualquer coisa".

Devo me incomodar em fazer uma verificação de permissão no arquivo? Como:

$ foo -i
Not reading ~/.foo_rc because it is world-writable, you goof!
P.S. you don't even own it; someone else put it there.
> _

Estou olhando para a fonte Bash e ela não se incomoda com as verificações de permissão para ~/.bash_profile (além de que ela existe e é legível, pré-condições para fazer qualquer coisa com ela).

[Atualização]

Após considerar a resposta do thrig, implementei a seguinte verificação no arquivo:

  • Se o arquivo não pertencer ao ID do usuário efetivo do chamador, ele não será seguro.

  • Se o arquivo é gravável para outras pessoas, então não é seguro.

  • Se o arquivo for gravável no grupo proprietário, ele não será seguro se o grupo incluir usuários que não sejam o chamador. (Ou seja, o grupo deve estar vazio ou ter o chamador como seu único membro).

  • Caso contrário, é considerado seguro.

Observe que a verificação de grupo não faz suposições sobre qualquer correspondência entre IDs de usuário numérico e IDs de grupo ou seus nomes; baseia-se na verificação de que o nome do usuário está listado como o único membro.

(Uma nota é adicionada à documentação para a função que executa esta verificação que está sujeita a um tempo de verificação da condição de tempo de corrida. Após a verificação ser aplicada, um superusuário inocente pode estender o grupo com membros adicionais, que podem ser maliciosos, e modificar o arquivo no momento em que ele é acessado.)

    
por Kaz 17.09.2015 / 20:36

1 resposta

3

Razoável e prudente, desde que haja avisos claros sobre qual arquivo está falhando e por quê, para que o usuário possa corrigir o problema das permissões. bash provavelmente data de um dia mais confiável (e cheio de travessuras). Note que os arquivos do usuário podem legitimamente ser graváveis em grupo, se o site tiver uma política de cada usuário entrar em um grupo em que apenas esse usuário esteja, caso contrário, não.

(As verificações do diretório pai também podem ser prudentes, para detectar chmod 777 $HOME goofs.)

    
por 17.09.2015 / 21:01