Como conceder privilégios limitados a um usuário normal para um diretório específico e executar arquivos sem sudo

Como conceder privilégios limitados a um usuário normal para um diretório específico e executar arquivos sem sudo

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.pypara 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.pye 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.pysem 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):

  1. 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>
  1. 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 cuckoopasta).
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'.

informação relacionada