Jawaban:
Saya tidak akan membahas seberapa banyak ini adalah ide yang buruk; sederhananya, menjalankan sudodi crontab membutuhkan kata sandi Anda untuk disimpan di suatu tempat di plaintext.
Itu ide yang buruk.
Berikut ini adalah metode yang disukai untuk menjalankan tugas administratif melalui cron. Karena Anda tidak benar-benar perlu menulis sudodi crontab, jika Anda memodifikasi crontab root.
Jalankan perintah berikut:
sudo crontab -e
Ini membuka rootcrontab. sudotidak perlu menjalankan perintah Anda dalam konteks ini, karena itu akan dipanggil sebagai rootpula.
Karena itu, Anda cukup menambahkan yang berikut ini ke crontab root.
@hourly rm somefile
Sekarang, jika Anda benar - benar ingin tidak aman dan mengambil risiko dengan kata sandi Anda, yang berikut ini akan menjalankan perintah Anda dari crontab Anda sendiri, dan memasukkan kata sandi Anda secara otomatis ketika diminta oleh sudo.
Sekali lagi, ini tidak dianjurkan .
Di crontab Anda sendiri, tulis perintah Anda seperti ini:
@hourly echo "password" | sudo -S rm somefile
Kerugian yang jelas di sini adalah, jika ada yang pernah mengakses crontab Anda, kata sandi Anda akan dapat dibaca dalam plaintext.
Anda seharusnya tidak melakukan ini.
rootcrontab pengguna alih-alih crontab seluruh sistem /etc/crontab?
sudoersfile Anda , seperti grup sudo tanpa persyaratan kata sandi.
Jika Anda meletakkan skrip dari salah satu direktori cron ( /etc/cron.*) maka Anda tidak perlu menggunakan sudo karena itu dijalankan sebagai root.
Jika Anda menggunakan crontab, maka Anda ingin menggunakan crontab root. Ini akan menjalankannya sebagai root, dan juga tidak perlu sudo.
sudo crontab -e
Jalankan perintah berikut di terminal
sudo visudo
Menambahkan baris berikut ke akhir file:
vidyadhar ALL= NOPASSWD: /bin/rm
Dalam contoh di atas vidyadhar adalah nama pengguna dan tidak akan meminta kata sandi jika Anda menjalankan perintah rm melalui vidyadhar.
sudo rm -rf 'slash'( jangan jalankan perintah itu ), jalankan dari pengguna itu, tidak memerlukan kata sandi .. Saya tidak tahu, rasanya tidak aman, bukan?
vidyadhar ALL= NOPASSWD: /bin/rm somefileakan lebih aman.
<username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>, yang akan jauh lebih aman.