Executar comando que exija root como usuário comum
Introdução
Pessoas, às vezes necessitamos executar um comando em um script com permissões de root, mas não queremos ter que ficar digitando senhas ou queremos que nosso script rode de modo "quiet".
Nessa dica vou mostrar como que, com um pouco de engenhosidade, podemos executar comandos ROOT como usuário comum.
Uma forma bastante direta de se fazer isso, seria alterando as permissões do comando diretamente, o que obviamente não é recomendável, pois geraríamos uma falha enorme de segurança e alguns bugs.
Sendo assim, qual seria a solução ???
Taí o pulo do gato >>> link simbólico.
Como assim, link simbólico?
Vou mostrar, como exemplo vou usar o DPKG.
Procedimento
1. Vamos criar o link simbólico para o DPKG e vamos chama-lo de 'dpkg2' (pode-se usar qualquer nome):
# ln -s /bin/dpkg /bin/dpkg2
NOTA: o link simbólico foi criado em /bin, pois essa é a pasta padrão dos "executáveis". Também poderia ter sido criado o link em outro diretório (por exemplo, em /home), mas para executa-lo teríamos que usar o caminho dele e não só o comando.
EX: /home/dpkg2 ou ~/dpkg2
2. Alteramos a permissão de 'dpkg2':
# chmod 4777 /bin/dpkg2
Prontinho. Agora temos um 'dpkg' (modo gambiarra) para colocar no script com permissões de usuário comum, sem mexer no 'dpkg2' original, testem aí.