ตัวแปรสภาวะแวดล้อม $ HOME ถูกตั้งค่าไว้บนระบบ Linux เสมอหรือไม่?


13

สมมติว่าเครื่องกำลังใช้เคอร์เนล Linux เซสชันใช้ประโยชน์จาก Bash shell และทุกอย่างใช้การกำหนดค่าเริ่มต้น (ไม่มีผู้ใช้ทำการเปลี่ยนแปลงใด ๆ กับไฟล์กำหนดค่า) เราสามารถสมมติว่า$HOMEตัวแปรสภาพแวดล้อมถูกตั้งค่าเสมอหรือไม่


nobodyไม่มีบ้าน! (เป็นnobodyผู้ใช้)
devnull

1
@devnull ไม่มี home (เช่นมี home directory ที่ระบุว่าไม่มีอยู่) ไม่ได้หมายความว่า $ HOME env ไม่สามารถตั้งค่าตัวแปรได้ ถ้าตั้งค่ามันก็ไม่ได้มีการชี้ไปที่ไดเรกทอรีที่มีอยู่ไม่ให้เข้าบ้านใน/etc/passwd
โธ

คำตอบ:


17

ใช่. ข้อกำหนด POSIX ต้องใช้ระบบปฏิบัติการที่จะตั้งค่าสำหรับ $ HOME:

หน้าแรก
ระบบจะเริ่มต้นตัวแปรนี้ในเวลาที่เข้าสู่ระบบเพื่อเป็นชื่อพา ธ ของโฮมไดเรกทอรีของผู้ใช้ ดู pwd.h

สิ่งที่เกี่ยวกับผู้ใช้nobody?

# su - nobody
No directory, logging in with HOME=/
$ echo $HOME
/

แม้ว่าจะnobodyไม่มีโฮมเพสที่แท้จริง แต่HOMEถูกตั้งเป็นไดเรกทอรีรูท


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