Desculpe pelas minhas expressões e espero ter descrito minha pergunta da forma mais clara possível.
Usando o sistema Red-hat. Atualmente possuo um superusuário no sistema, e preciso fazer isso sudo python cuckoo.py
para executar este programa python, e ele lê e grava em um diretório específico, chamado "cuco".
Agora quero dar a um usuário normal acesso a este "cuckoo.py", bem como ao diretório de trabalho. No entanto, enquanto isso, também não quero conceder privilégios de superusuário a esse usuário, pois eles podem danificar meu sistema.
Então, como posso permitir que o usuário normal ligue diretamente python cuckoo.py
e não receba nenhum erro dizendo "Permissão negada"?
Qualquer ajuda e comentários são apreciados. E se eu tiver algumas frases com palavrões que não deixem claro, indique-as também e farei o possível para explicar com mais detalhes.
Obrigado!
EDIT: Talvez minhas palavras não sejam muito claras... Não quero incluir esse usuário normal no "root". Atualmente criei um grupo e adicionei esse usuário normal ao grupo, e a permissão do diretório está definida como 755. Mas quero que o grupo tenha permissão para escrever para funcionar cuckoo.py
sem problemas. Então, eu me pergunto como fazer com que o root e este grupo tenham permissão para ler, escrever e executar?
Responder1
Se a única razão pela qual o script precisa ser executado como root é ler/gravar em seu diretório específico, há duas maneiras de resolver isso (para permitir que um usuário comum execute o script com sucesso):
- Criou um grupo, torne a pasta em que você está trabalhando pertencente a esse grupo e adicione o usuário a esse grupo.
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
- Basta alterar a permissão mundial da pasta (não recomendado se você não deseja que nenhum usuário do seu computador possa acessar sua
cuckoo
pasta).
sudo chmod -R 664 ./cuckoo
Esta permissão permite leitura e gravação para proprietário, grupo e mundo
Responder2
Parece que interpretei mal a pergunta. Se o script precisar ser executado como root de qualquer maneira, e você quiser que um usuário comum seja capaz de executá-lo, você pode seguir as instruções encontradas emesta pergunta do AskUbuntu.
Lembre-se de que você precisará ter as permissões bem bloqueadas neste arquivo para que ele seja seguro.
Faça com que o arquivo pertença ao root e ao grupo root:
sudo chown root.root <my script>
Agora defina o sticky but, torne-o executável para todos e gravável apenas pelo root:
sudo chmod 4755 <my script>
Lembre-se de que se este script permitir qualquer entrada ou edição de arquivos, isso também será feito como root.
O bit SetUID faz com que um script ou binário sempre seja executado como proprietário do arquivo/binário, um exemplo de tal binário é 'passwd'.