Respostas:
Não vou entender o quanto isso é uma má idéia; Simplificando, a execução sudo
no crontab requer que sua senha seja armazenada em algum lugar em texto sem formatação.
É uma má idéia.
A seguir, é o método preferido para executar tarefas administrativas por meio do cron. Como você realmente não precisa escrever sudo
no crontab, se estiver modificando o crontab do root.
Execute o seguinte comando:
sudo crontab -e
Isso abre o root
crontab. sudo
não é necessário executar seu comando nesse contexto, pois ele será invocado da mesma root
forma.
Portanto, você simplesmente anexaria o seguinte ao crontab do root.
@hourly rm somefile
Agora, se você absolutamente deseja ser inseguro e correr riscos com sua senha, o seguinte executará seu comando a partir do seu próprio crontab e inserirá sua senha automaticamente quando solicitado sudo
.
Novamente, isso não é recomendado .
No seu próprio crontab, escreva seu comando da seguinte maneira:
@hourly echo "password" | sudo -S rm somefile
A desvantagem óbvia aqui é que, se alguém acessar seu crontab, sua senha será legível em texto sem formatação.
Você não deveria fazer isso.
root
o crontab do usuário em vez do crontab em todo o sistema /etc/crontab
?
sudoers
arquivo, como grupos sudo sem necessidade de senha.
Se você estiver colocando o script em um dos diretórios cron ( /etc/cron.*
), não precisará usar o sudo, pois ele está sendo executado como root.
Se você estiver usando o crontab, precisará usar o crontab do root. Isso o executará como root e também não precisará do sudo.
sudo crontab -e
Execute o seguinte comando no terminal
sudo visudo
Adicionada a seguinte linha ao final do arquivo:
vidyadhar ALL= NOPASSWD: /bin/rm
No exemplo acima, vidyadhar é o nome de usuário e não solicitará a senha se você estiver executando o comando rm através do vidyadhar.
sudo rm -rf 'slash'
( não execute esse comando ), executado a partir desse usuário, não exigiria senha. Não sei, parece inseguro, não?
vidyadhar ALL= NOPASSWD: /bin/rm somefile
fosse mais seguro.
<username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>
, o que seria muito mais seguro.