Permissão SUID não funciona [RESOLVIDO]

1. Permissão SUID não funciona [RESOLVIDO]

Kaoe Moraes Menna
kmenna

(usa Arch Linux)

Enviado em 09/06/2014 - 09:27h

Bom dia pessoal, estou com um problema tenho um script que deve ser executado pelo root eu setei a permissão SUID nele e o dono é o root, porém a variável $USER continua mostrando meu nome de usuário e não tenho permissão de escrita no arquivo que preciso, alguém tem ideia de por que isso?

permissão do arquivo:

7343512 4,0K -rwsrwxr-x 1 root kaoe 161 Jun 9 09:08

vlw e obrigado!


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 10/06/2014 - 16:40h

kmenna escreveu:

Bom dia pessoal, estou com um problema tenho um script que deve ser executado pelo root eu setei a permissão SUID nele e o dono é o root, porém a variável $USER continua mostrando meu nome de usuário e não tenho permissão de escrita no arquivo que preciso, alguém tem ideia de por que isso?

permissão do arquivo:

7343512 4,0K -rwsrwxr-x 1 root kaoe 161 Jun 9 09:08

vlw e obrigado!


O bit de setuid não funciona em scripts, mas apenas em executáveis nativos. Quando você tem um script que precisa de setuid, deve usar um executável nativo que seja setuid para funcionar como wrapper; isto é: fazendo com que ele chame o script depois de conseguir a mudança de privilégios.

Minha primeira dica é rodar o script com o sudo. O sudo é um wrapper genérico para qualquer comando, que permite que você tenha vários controles de quem pode acessar o que e com quais credenciais, de acordo com um arquivo de configuração.

Se você tiver preguiça de digitar "sudo" toda vez que executar o script, pode embutir nele código que verifique se ele já está sendo executado com as permissões corretas, para que se reexecute sob o sudo se não estiver.

#!/bin/bash

# Verifica se o script está sendo executado como root (uid==0).
if [[ `id -u` != 0 ]]; then
# Não está. Reexecuta o script com sudo.
exec sudo $0 $@
fi

# Restante do script, que precisa de acesso como root.


3. Re: Permissão SUID não funciona [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 09/06/2014 - 09:32h

Cara, vc não sabe realmente o q é SUID. SUID é permissão somente de execução e não d escrita. Seu usuário não vai mudar tb. Se vc alterou o dono pra root e aplicou o SUID, qq usuário q executar o script vai ser como root e não como usuário comum, mas a permissão de escrita continuará d root, não podendo ser alterado se não pelo próprio usuário root.


4. Re: Permissão SUID não funciona [RESOLVIDO]

Kaoe Moraes Menna
kmenna

(usa Arch Linux)

Enviado em 09/06/2014 - 09:41h

Acho que não fui claro, nesse script eu executo um comando que interage com um arquivo que é do root, então logo eu pensei que com permissão SUID eu poderia modificar esse arquivo de qualquer usuário, certo? O script eu modifico sem problemas.


5. Re: Permissão SUID não funciona [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 09/06/2014 - 15:57h

Não dá pq os executáveis q vc chama dentro do script tb necessitam de SUID, e isso não é seguro. A melhor forma d fazer isso é habilitando o sudo e permitindo quais binários eles podem executar.


6. Re: Permissão SUID não funciona [RESOLVIDO]

Kaoe Moraes Menna
kmenna

(usa Arch Linux)

Enviado em 09/06/2014 - 16:46h

Hum acho que entendi, não realmente como se o root tivesse executando, por exemplo se fosse um programa python com essas permissões funcionaria?


7. Re: Permissão SUID não funciona [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 09/06/2014 - 17:27h

Depende do q o python vai executar. Se não envolver nenhum binário dentro dele, acredito q rola d boa.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts