Skrip Bash adalah bagian penting dari pekerjaan administrator sistem. Mereka memungkinkan Anda untuk mengotomatiskan tugas-tugas biasa dan penting.
Salah satu hal terbaik dengan skrip adalah skrip dapat berjalan secara mandiri tanpa campur tangan manusia, tetapi terkadang sulit untuk mengotomatiskan tugas yang memerlukan kata sandi pengguna. Mari kita lihat bagaimana Anda dapat mengotomatiskan skrip yang membutuhkan kata sandi dengan aman tanpa mengorbankan keamanan.
Membuat Skrip Sederhana
Anggaplah Anda ingin membuat skrip sederhana yang mencadangkan folder utama Linux Anda ke lokasi yang jauh sehingga Anda dapat dengan mudah memulihkan data jika terjadi kehilangan data.
Mulailah dengan membuat file skrip Bash di folder rumah Anda, menggunakan perintah sentuh atau metode lainnya, dan beri nama backup_home.sh. Jangan ragu untuk menggunakan nama dan direktori apa pun yang Anda sukai.
Skrip menggunakan rsync perintah, alat penyalin file yang ampuh, untuk mencadangkan semua file di direktori home lokal Anda ke server jarak jauh.
Salin konten skrip berikut dan rekatkan ke file Bash Anda. Ingatlah untuk mengganti pengguna john dengan nama yang benar dari pengguna rumahan lokal Anda. Berikan juga nama pengguna dan alamat IP yang benar untuk server jarak jauh.
#!/bin/bash
#Salin data ke server jarak jauh
rsync -avl --mkpath /home/john user_name@terpencil_server/rumah/Cadangan
Jika Anda tidak memiliki server jarak jauh untuk diuji, Anda bisa melakukannya instal VirtualBox dan atur VM pada mesin lokal Anda. Gunakan tamu VM sebagai server jarak jauh Anda.
Simpan file. Untuk mengeksekusi skrip, Anda harus memberinya izin eksekusi menggunakan perintah sudo chmod 755. Semua pengguna dapat menjalankan skrip tetapi hanya pengguna sudo yang dapat memodifikasi file.
Terakhir, jalankan skrip Bash dari terminal menggunakan perintah:
./backup_home.sh
Setiap kali Anda menjalankan skrip ini, Anda akan diminta memasukkan kata sandi server jarak jauh. Ini tidak ideal jika Anda ingin menjalankan skrip tanpa campur tangan manusia, seperti saat menggunakan Cron.
Mengotomatiskan Login Kata Sandi
Install sshpass, penyedia kata sandi non-interaktif, di PC lokal Anda atau PC tempat Anda akan menjalankan skrip.
Di distro berbasis Debian
Jika Anda menggunakan distro berbasis Debian seperti Ubuntu, Pop!_OS, dan Lubuntu:
sudo tepat memperbarui && sudo apt Install sshpass
Di RHEL dan Fedora
dnf Install sshpass
Setelah menginstal sshpass, ubah skrip sehingga terlihat seperti berikut.
#!/bin/bash
#Salin data ke server jarak jauh
sshpass -p "kata sandi Anda" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup
Di sini Anda memberikan kata sandi dalam teks biasa. Jelas, ini bukan cara yang ideal, karena tidak aman dan bukan praktik yang baik. Jika skrip jatuh ke tangan yang salah, Anda berada dalam masalah besar.
Untuk membuatnya lebih aman, kami akan menggunakan GnuPG, alat enkripsi sumber terbuka dan aman.
Mengenkripsi Kata Sandi Anda
GnuPG diinstal secara default di sebagian besar sistem Linux, tetapi jika tidak diinstal di sistem Anda, berikut cara install GnuPG.
Buat file tersembunyi bernama rahasia menggunakan perintah sentuh .rahasia. Karena kami telah membuat file disembunyikan secara default sebagai langkah keamanan tambahan, inilah caranya melihat file tersembunyi di Linux.
Di file rahasia, masukkan kata sandi PC jarak jauh Anda dan simpan.
Selanjutnya, enkripsi file menggunakan gpg memerintah.
sudogpg.rahasia
Anda akan diminta memasukkan kata sandi yang aman dan kuat untuk membuka file terenkripsi.
GnuPG akan membuat file baru dengan ekstensi .gpg ditambahkan ke nama file lama. Nama file baru Anda sekarang seharusnya rahasia.gpg, dengan asumsi Anda menggunakan rahasia nama file.
Jika Anda melihat isi dari secret.gpg menggunakan kucing perintah, Anda akan disajikan dengan beberapa teks nonsens untuk menunjukkan bahwa kata sandi Anda dienkripsi.
Untuk melihat konten file dalam teks biasa, Anda harus mendekripsinya menggunakan perintah berikut (Anda akan diminta untuk memasukkan kata sandi yang Anda setel selama enkripsi):
gpg-dqrahasia.gpg
Menggunakan Kata Sandi Terenkripsi di Skrip Anda
Untuk menggunakan kata sandi terenkripsi dalam skrip, perbarui skrip sebagai berikut:
#!/bin/bash
#Salin data ke server jarak jauh
gpg -dq rahasia.gpg | sshpass rsync -avl --mkpath /home/john user_name@terpencil_server/rumah/Cadangan
Jalankan skrip cadangan lagi, dan kali ini Anda tidak akan dimintai kata sandi.
Otomatiskan Tugas Dengan Skrip Bash
GnuGP sering digunakan untuk mengamankan file dan data sensitif di PC Anda dan juga merupakan alat yang hebat untuk mengamankan kata sandi dalam skrip Bash otomatis di Linux.
Ada banyak hal yang dapat Anda lakukan dengan skrip Bash. Bash adalah alat yang ampuh yang dapat membantu Anda mengotomatiskan banyak hal di Linux dan belajar menulis skrip Bash adalah investasi yang berharga.