Permissão de arquivo executável do Unix vs permissões do usuário em tempo de execução

2

Ouvi dizer que é uma boa prática executar um executável como um usuário com um conjunto de privilégios completamente diferente do proprietário da tarefa. Na verdade, ouvi dizer que é melhor executá-lo como um usuário diferente com exatamente o conjunto de privilégios oposto. Eu posso entender como limitar os privilégios de um usuário em tempo de execução, mas isso não pode ser alcançado pelo recurso setuid ?

    
por Osada Lakmal 06.10.2010 / 20:40

2 respostas

0

Se eu entendi corretamente, você tem um aplicativo que é executado por um usuário normal e cujos arquivos associados não devem ser graváveis por usuários normais para evitar a exclusão acidental. Para isso você não precisa setuid. Tudo o que você precisa fazer é algo como:

chown -R root.root /opt/theapp
chmod -R g-w /opt/theapp
chmod -R o-w /opt/theapp
chmod 755 /opt/theapp/bin/theexe

significa que você concede a propriedade dos arquivos para root, não permite que todos os outros usuários gravem e permitem que cada usuário leia e execute, mas não escreva o executável.

    
por 06.10.2010 / 22:08
0

Eu diria que isso geralmente é uma má ideia; em quase todos os casos, você quer que seus executáveis tenham os mesmos privilégios que você, já que geralmente quer deixar que o executável faça o que foi projetado para fazer com seus arquivos. Por exemplo, se você transformou seu editor de texto em um usuário sem privilégios, não seria possível editar nenhum arquivo de texto ...

    
por 07.10.2010 / 01:52