การส่งรหัสผ่านในตัวแปรสภาพแวดล้อมมีความปลอดภัยเท่ากับการให้โปรแกรมอ่านจากไฟล์ เฉพาะกระบวนการที่ทำงานในฐานะผู้ใช้เดียวกันเท่านั้นที่สามารถอ่านสภาพแวดล้อมของกระบวนการและกระบวนการเหล่านี้ได้รับอนุญาตให้อ่านไฟล์เดียวกันได้
โปรดทราบว่านี่จะแตกต่างจากการส่งรหัสผ่านในบรรทัดคำสั่ง อาร์กิวเมนต์บรรทัดคำสั่งสามารถอ่านได้โดยกระบวนการทั้งหมดที่ทำงานบนเครื่องเดียวกัน (ยกเว้นการวัดการชุบแข็ง) ไม่เพียง แต่กระบวนการทำงานในฐานะผู้ใช้เดียวกัน
หากคุณส่งตัวแปรผ่านสภาพแวดล้อมให้ระวังถ้าโปรแกรมเปิดใช้งานโปรแกรมอื่น โปรแกรมอื่น ๆ เหล่านั้นจะสืบทอดสภาพแวดล้อมของผู้ปกครอง ดังนั้นอย่าทำเช่นนี้หากคุณกลัวว่าโปรแกรมอื่นอาจรั่วเนื้อหาของสภาพแวดล้อมโดยไม่ตั้งใจ
ข้อบกพร่องในสถานการณ์ของคุณคือ“ สร้างตัวแปรสภาพแวดล้อมที่เหมาะสมเมื่อตั้งค่าระบบเซิร์ฟเวอร์” ตัวแปรสภาพแวดล้อมเป็นคุณสมบัติแบบไดนามิกของกระบวนการ คุณไม่สามารถสร้างมันขึ้นมาได้เมื่อตั้งค่าระบบไม่ใช่โดยการตั้งค่าคุณหมายถึงบางสิ่งที่ยังคงมีการรีบูต สิ่งที่คุณหมายถึงน่าจะเป็นว่าผู้ดูแลระบบได้จัดเตรียมตัวแปรนี้ให้อยู่ในสภาพแวดล้อมเมื่อผู้ใช้บางคนเข้าสู่ระบบสิ่งนี้ทำผ่านไฟล์การกำหนดค่า (โดยทั่วไป~/.pam_environment
หรือ~/.profile
หรือไฟล์ที่อ่านจาก~/.profile
) ดังนั้นวิธีนี้จึงไม่ย้ายรหัสผ่านออกจากไฟล์กำหนดค่า
การตั้งค่าต่าง ๆ เพื่อให้รหัสผ่านอยู่ในสภาพแวดล้อมการล็อกอินของผู้ใช้ไม่ใช่ความคิดที่ดี หมายความว่าทุกกระบวนการที่ทำงานในฐานะผู้ใช้นั้นจะมีความลับดังนั้นจึงเสี่ยงต่อการรั่วไหลได้ทุกที่
ควรใส่รหัสผ่านในไฟล์ที่นอกเหนือจากไฟล์กำหนดค่าที่อยู่ภายใต้การควบคุมเวอร์ชันและจากกลไกการปรับใช้ปกติ มันก็โอเคที่จะใส่รหัสผ่านในสภาพแวดล้อมในบางจุดถ้ามันสะดวก แต่มันควรจะทำสำหรับชุดของโปรแกรมที่เล็กที่สุดเท่าที่จะทำได้