ฉันมีผู้ใช้ที่ไม่ได้ทำการแก้ไข $ PATH ในไฟล์ dot ใด ๆ : มันเป็นการตั้งค่าเริ่มต้นของระบบ จากเชลล์ล็อกอิน:
$ ssh example.com
user@example.com:~$ cat /tmp/hello.hs
#!/bin/bash
echo "$SHELL"
echo "$PATH"
user@example.com:~$ /tmp/hello.hs
/bin/bash
/usr/local/bin:/usr/bin:/bin
/etc/profile
ตรงตามที่ระบุไว้ใน ฉันพบสิ่งนี้ค่อนข้างคาดไม่ถึง:
$ ssh example.com '/tmp/hello.sh'
/bin/bash
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
เช่นฉันกล่าวว่ามีการปรับเปลี่ยนของ $ PATH ไม่มีหรือใน~/.bashrc
/etc/bash.bashrc
ไม่~/.ssh/environment
เหมือนกัน ssh(1)
บอกว่าตัวแปรสภาพแวดล้อมPATH
เป็น
ตั้งค่าเป็นเส้นทางเริ่มต้นตามที่ระบุไว้เมื่อรวบรวม ssh
แต่กระทู้นี้จาก StackOverflow และบทความรายชื่อผู้รับจดหมายนี้แนะนำว่าฉันควรจะสามารถมีอิทธิพลต่อ $ PATH สำหรับคำสั่งที่กำหนดเพียงแค่แก้ไข / etc / profile หนึ่งในไฟล์เริ่มต้นเชลล์ ฯลฯ
เกิดอะไรขึ้นที่นี่?