อะไรคือความแตกต่างระหว่าง / etc / environment และ / etc / profile?


25

ฉันเข้าใจว่าอดีตถูกโหลดก่อนหน้าหลัง แต่ความแตกต่างทางแนวคิดคืออะไร มีเหตุผลที่ดีที่ฉันควรตั้งค่าตัวแปรบางอย่างในหนึ่งและไม่ได้อยู่ในอื่น ๆ ? ยกเว้นข้อเท็จจริงที่/etc/environmentดูเหมือนว่ามีอยู่ในการตั้งค่าสภาพแวดล้อมสำหรับกระบวนการทั้งหมดที่ดำเนินการโดยระบบในขณะที่/etc/profileการตั้งค่าสภาพแวดล้อมที่ใช้และเผยแพร่จากเปลือกเข้าสู่ระบบถูกต้องหรือไม่

นอกจากนี้ในบันทึกด้านข้างซึ่งโปรแกรมแบบดั้งเดิมอ่าน/etc/environment? มันเกี่ยวข้องกับ POSIX หรือเพียงแค่การประชุมหรือไม่?

คำตอบ:


11

แยกจากความช่วยเหลือของ Ubuntu

/etc/environment- ไฟล์นี้มีความหมายโดยเฉพาะสำหรับการตั้งค่าตัวแปรสภาพแวดล้อมทั้งระบบ ไม่ใช่ไฟล์สคริปต์ แต่ประกอบด้วยนิพจน์การกำหนดหนึ่งรายการต่อบรรทัด ไฟล์นี้จัดเก็บการตั้งค่าตำแหน่งที่ตั้งและพา ธ ทั่วทั้งระบบ

/etc/profile - ไฟล์นี้จะถูกเรียกใช้งานเมื่อใดก็ตามที่มีการป้อนเชลล์ bash (เช่นเมื่อล็อกอินจากคอนโซลหรือผ่าน ssh) รวมถึง DisplayManager เมื่อเดสก์ท็อปโหลดขึ้นมา

ฉันคิดว่าทั้งหมดนี้เป็นเพียงแค่การประชุม แต่ไม่ไกลจากมาตรฐาน (ฉันไม่รู้เกี่ยวกับ RedHat เหมือนระบบ)


มันทำงานได้กับ RedHat (จาก 7.6) '/ etc / environment' ว่างเปล่าคือเซิร์ฟเวอร์ของฉันและการตั้งค่าVAR=valueมีผลในเชลล์ (หลังจากล็อกอินอีกครั้ง)
DKroot

39

/etc/environmentไม่ได้เป็นส่วนหนึ่งของ POSIX มันเป็นของ PAM (Pluggable Authentication Module) และเฉพาะโปรแกรมที่คอมไพล์ด้วยการสนับสนุน PAM เท่านั้นที่สามารถใช้งานได้ (โดยหลักแล้วคือระบบการเข้าสู่ระบบ ซึ่งหมายความว่ามันจะไม่ได้อ่านโดยเชลล์ของคุณ

ท่านสามารถเข้าดูโปรแกรมที่ใช้กับ/etc/environmentgrep -l pam_env /etc/pam.d/*

ดังนั้น/etc/environmentจะใช้สำหรับการตั้งค่าตัวแปรสำหรับโปรแกรมที่มักจะไม่ได้เริ่มต้นจากเชลล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.