Melewati kata sandi dalam variabel lingkungan sama amannya dengan membuat program membacanya dari file. Hanya proses yang berjalan karena pengguna yang sama dapat membaca lingkungan proses , dan proses ini diperbolehkan untuk membaca file yang sama.
Perhatikan bahwa ini berbeda dari melewatkan kata sandi pada baris perintah. Argumen baris perintah dapat dibaca oleh semua proses yang berjalan pada mesin yang sama (pembatasan langkah-langkah pengerasan), bukan hanya proses yang berjalan sebagai pengguna yang sama.
Jika Anda melewatkan variabel ke lingkungan, waspadalah jika program meluncurkan program lain. Program-program lain akan mewarisi lingkungan orang tua mereka. Jadi jangan lakukan ini jika Anda takut bahwa program lain mungkin secara tidak sengaja membocorkan isi lingkungan mereka.
Kelemahan dalam skenario Anda adalah "membuat variabel lingkungan yang sesuai ketika sistem server diatur". Variabel lingkungan adalah properti dinamis dari suatu proses. Anda tidak dapat membuatnya ketika mengatur sistem, tidak jika dengan mengatur Anda berarti sesuatu yang selamat dari reboot. Apa yang Anda maksud adalah mungkin bahwa administrator mengatur agar variabel ini hadir di lingkungan ketika pengguna tertentu masuk. Ini dilakukan melalui file konfigurasi (biasanya~/.pam_environment
atau ~/.profile
atau file dibaca dari ~/.profile
). Jadi solusi ini tidak memindahkan kata sandi dari file konfigurasi.
Mengatur berbagai hal sehingga kata sandi ada dalam lingkungan waktu masuk pengguna bukanlah ide yang baik. Ini berarti bahwa setiap proses yang berjalan sebagai pengguna akan memiliki rahasia, sehingga rentan terhadap kebocoran di mana saja.
Kata sandi harus dimasukkan ke dalam file yang terpisah dari file konfigurasi yang berada di bawah kontrol versi dan dari mekanisme penyebaran normal. Tidak apa-apa untuk meletakkan kata sandi di lingkungan di beberapa titik jika itu nyaman, tetapi harus dilakukan untuk sekecil mungkin set program.