Saya memiliki program java yang saya gunakan untuk mengotomatiskan proses membuat pengaturan VPN untuk klien. Program ini memanggil beberapa skrip bash, membuat dan menyalin file di sekitarnya. Saya harus menjalankannya di bawah pengguna root karena seluruh konfigurasi VPN di bawah / etc / openvpn. Untuk direktori ini saya perlu hak akses root. Pada mesin yang sama saya memiliki server aplikasi Glassfish dan itu akan memanggil program Java yang disebutkan. Glassfish dijalankan di bawah pengguna non-root.
Apa cara terbaik, paling aman menjalankan program sebagai pengguna root tentu saja tanpa memasukkan kata sandi jika saya menjalankannya melalui sudo?
Apa yang saya temukan adalah menjalankan perintah sebagai sudo tanpa memasukkan kata sandi ada dua opsi:
menambahkan baris berikut ke / etc / sudoers
username ALL = (ALL) NOPASSWD: COMMAND
Perhatikan bahwa baris ini harus setelah semua definisi grup. Anda dapat memeriksa hak istimewa sudo yang Anda gunakan
sudo -l
. Untuk kasus ini, ini menghasilkan:Ini berarti bahwa untuk semua perintah, kata sandi akan diperlukan kecuali untuk PERINTAH. Jika kita menempatkan
username ALL=(ALL) NOPASSWD: COMMAND
sebelum definisi grup makasudo -l
akan menghasilkan:Ini masih memerlukan kata sandi untuk PERINTAH, karena
(ALL) ALL
ditentukan setelah baris NOPASSWD.sumber