binding root pass no comando sudo

1

é possível ter um comando sudo executado com a senha do administrador?

exemplo:

sudo apt-get update -password is 'root' 

isso é colocar um comando em um aplicativo na inicialização do Ubuntu que precisa de acesso root

    
por Suhayb Kharabsheh 26.11.2016 / 15:01

2 respostas

1

Se você quiser que um processo particilar seja executado na inicialização como root, sugiro que você o envolva em um script systemd / init.d. Para o systemd, algo assim provavelmente funcionaria:

[Unit]
Description=Some command

[Service]
User=root
Type=oneshot
ExecStart=/usr/bin/whateverprogram and associated arguments

[Install]
WantedBy=multi-user.target

Embora no exemplo acima eu acredite que a diretiva User é supérflua.

Como alternativa, sem implementar alguma ferramenta de gerenciamento de segredos (veja hashicorps vault, ansible tem um recurso similar, etc.), você está praticamente preso a duas opções:

Crie um /etc/sudoers.d/somefile com uma entrada para todo o programa a ser executado com privilégios elevados sem a senha. Ou seja,

ALL ALL=/usr/bin/theprogramtorun NOPASSWD

Ou se você não se importa nem um pouco com a segurança do sistema e seu usuário é um sudoer, você pode tentar criar scripts como:

echo "thisisaterribleidea" | sudo -S /usr/bin/command

Para passar a senha em texto puro pela linha de comando

    
por 28.11.2016 / 16:09
-1

Bem, a melhor prática é:

echo "your password" | sudo --stdin command 

Isso executará o comando primeiro e preencherá a senha digitada na instrução echo.

    
por 26.11.2016 / 19:08