[1] Comentário enviado por
elgio em 03/02/2010 - 23:59h:
Boa a tua ideia.
Se me permite olhar com olhos de segurança :-D teu script é vulnerável a um ataque.
Algum usuário malicioso, sabendo que o root irá executar teu script e que criará a fila "backup" por exemplo, pode fazer isto:
mkdir /tmp/qcmd
ln -s /etc/passwd /tmp/qcmd
Agora, quando o usuário root executar o teu script para a fila backup, irá detonar o arquivo de senhas!
Mas é ainda PIOR! um usuário poderia criar o arquivo, já inserir comandos malicioso nele a espera que o root o use!!
Para evitar estes problemas, deveria-se realizar muitos outros testes no arquivo em questão, como ver se ele pertence ao usuário que está digitando o teu sript.
Este tipo de ataque é conhecido como race condiction, muito embora as condições de corrida exploradas são bem mais complexas.
Sem há este ENORME PERIGO quando um programa qualquer abre um arquivo para editar podendo criá-lo. Para isto que existe o comando mktemp. Ele cria um arquivo de nome aleatório no /tmp
[2] Comentário enviado por
fabiofabris em 04/02/2010 - 00:13h:
Bem observado. Não pensei em uso simultâneo por vários usuários.
Todos esses problemas podem ser contornados gravando os scripts na pasta home do usuário em questão no lugar de /tmp, basta mudar a variável baseDir de todos os scripts.
Ou ainda criar diretórios temporários cujo os nomes sejam relacionados com os nomes dos usuários e não permitir a leitura para outros. Vou atualizar os scritps levando isso em consideração.
Não conhecia o comando mktemp. Vou levar ele em consideração para futuros scritps. Valeu!