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

0

Sinto muito por minhas expressões e espero ter descrito minha pergunta da forma mais clara possível.

Usando o sistema Red Hat. Atualmente eu possuo um superusuário no sistema, e eu tenho que fazer sudo python cuckoo.py para rodar este programa python, e ele lê & escreve em um diretório específico, chamado "cuco".

Agora quero conceder a um usuário normal acesso a este "cuckoo.py", bem como ao diretório de trabalho. No entanto, entretanto, eu também não quero conceder privilégios a este usuário superusuário, porque eles podem danificar o meu sistema.

Então, como posso permitir que o usuário normal chame diretamente o python cuckoo.py e não receba nenhum erro dizendo "Permissão negada"?

Qualquer ajuda e comentários são bem-vindos. E se eu tiver algumas frases muito ruins para deixar claro, por favor, indique isso e eu farei o meu melhor para explicar em mais detalhes.

Obrigado!

EDIT: Talvez minhas palavras não estejam bem claras ... Eu não quero incluir esse usuário normal em "root". Atualmente, criei um grupo e adicionei esse usuário normal ao grupo, e a permissão de diretório está definida como 755. Mas quero que o grupo tenha permissão para escrever para executar cuckoo.py sem problemas. Então, pergunto-me como fazer com que tanto a raiz como este grupo tenham permissão para ler, escrever & executar?

    
por Xiechen 21.06.2016 / 07:24

2 respostas

2

Se a única razão pela qual o script precisa ser executado como root é ler / gravar em seu diretório específico, existem duas maneiras de resolver isso (para permitir que um usuário comum execute o script com êxito):

  1. Crie um grupo, crie a pasta em que você trabalha 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 quiser que nenhum usuário do seu computador possa acessar sua pasta cuckoo ).
sudo chmod -R 664 ./cuckoo

Esta permissão permite ler e escrever para o proprietário, grupo e mundo

    
por 21.06.2016 / 07:53
0

Parece que eu posso ter interpretado mal a pergunta. Se o script precisar ser executado como root independentemente, e você quiser que um usuário regular seja capaz de executá-lo, você pode seguir as instruções encontradas em esta pergunta do AskUbuntu.

Keep in mind that you will need to have the permissions locked down tight in this file for this to be secure.

Make the file owned by root and group root:

sudo chown root.root <my script>

Now set the sticky but, make it executable for all and writable only by root:

sudo chmod 4755 <my script>

Keep in mind if this script will allow any input or editing of files, this will also be done as root.

The SetUID bit makes a script or binary always run as the owner of the file/binary, an example of such a binary is 'passwd'.

    
por 21.06.2016 / 09:41