Script de shell para se tornar root

4

Como podemos escrever um script de shell para se tornar root? Isso é que eu não quero inserir a senha no prompt que deve estar dentro do próprio script. Eu estava tentando fazer, mas não conseguiu fazê-lo. É possível, se sim, por favor explique.

    
por Rahul Kumar Dubey 19.10.2012 / 19:32

4 respostas

4

Você pode escrever um script usando a ferramenta .

No Redhat, o pacote expect vem por padrão. Mas no Ubuntu você precisa instalá-lo separadamente.

Você pode verificar isso usando comandos:

$ rpm -qa | grep expect para Redhat

$ dpkg -l expect para o Ubuntu

O script a seguir fará seu trabalho:

#!/usr/bin/expect

spawn su -
expect "Password: "
send "password\r"
interact
    
por 19.10.2012 / 20:18
0

Armazenar o texto não criptografado da senha raiz em um arquivo é inerentemente perigoso - há muitas rotas pelas quais ele pode ser recuperado.

Isso parece ser um problema XY.

A maneira unixy de delegar permissões é através do bit setuid - mas isso só pode ser aplicado a executáveis binários, não a shell scripts. Como afirma o jordanm, aplicar o setuid ao shell em si é muito perigoso - é por isso que o sudo existe - ele tem um bit setuid e valida as solicitações do usuário no arquivo sudoers para fornecer um controle refinado sobre o acesso. Mas o sudo também tem algumas dicas.

    
por 03.02.2017 / 14:46
-1

A maneira mais simples é fazer uma cópia suid do shell:

cp /bin/bash $HOME/bin/becomeroot
sudo chown root $HOME/bin/becomeroot
sudo chmod 4750 $HOME/bin/becomeroot
hash -r

Em seguida, executar becomeroot iniciará um subshell de bash em execução como root.

No entanto, eu seria negligente se não lhe desse este conselho: não faça isso. Não é aconselhável tornar tão fácil para o malware escalar seus privilégios para o root. Em vez disso, instale sudo e aprenda a usá-lo sempre que precisar executar algo como root.

    
por 19.10.2012 / 20:19
-2

Você pode definir o bit adesivo da SUID:

chmod 2664 your-file

Isso fará com que o software seja executado como o proprietário do arquivo. Então, é claro, você precisará alterar a propriedade para o root:

sudo chown root your-file

(supondo que você é encontrado no arquivo sudoers, e você instalou o sudo)

    
por 19.10.2012 / 19:53