คุณกำลังเท่าท้องถิ่นการตั้งค่าระยะไกลการตั้งค่า
ภายในอินสแตนซ์ bash ซึ่งเป็นเชลล์ที่รันอยู่ซึ่งคุณเขียน:
ssh user@host command
จะดำเนินการคำสั่ง ssh (ไม่มีอะไรเพิ่มเติม) เป็นลูกค้า ssh
ในการทำเช่นนั้นโลคัลเชลล์ไม่จำเป็นต้องเริ่มเชลล์ย่อยหรือเชลล์ใหม่หรือล็อกอิน
คำสั่งถูกดำเนินการตามls
คำสั่งคือ: ในเครื่อง
เป็นคำสั่งไคลเอ็นต์ ssh ที่เปิดการเชื่อมต่อเครือข่ายไปยังระบบรีโมตโดยที่หากพิสูจน์ตัวตนได้อย่างถูกต้องแล้วเชลล์ใหม่จะเริ่มต้นเพื่อเรียกใช้งานคำสั่งที่เขียนเป็นอาร์กิวเมนต์ให้กับ ssh หรือหากไม่ได้รับอาร์กิวเมนต์ ในการเชื่อมต่อนั้น
รีโมตเชลล์ใหม่นั้นจำเป็นต้องเป็นเชลล์ล็อกอินในฐานะผู้ใช้รีโมต (ไปยังระบบ) นั้นจำเป็นต้องได้รับการพิสูจน์ตัวตนเพื่อล็อกอิน หรือหากมีคำสั่งเฉพาะให้เรียกใช้คำสั่งนั้นด้วยสิทธิ์ผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์
คุณสามารถดูว่าไฟล์ใดที่มีแหล่งที่มาโดยการเพิ่ม a $file sourced
ไปยังจุดเริ่มต้นของแต่ละไฟล์ (ในระบบรีโมต ) (จำเป็นต้องรูทเพื่อเปลี่ยน/etc/
ไฟล์):
$ a=(~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile)
$ for f in "${a[@]}"; do sed -i '1 i\echo "'"$f"' was read"\n' "$f"; done
จากนั้นเริ่มคอนโซล ssh:
$ ssh sorontar@localhost
/etc/profile was read
/etc/bash.bashrc was read
/home/sorontar/.profile was read
/home/sorontar/.bashrc was read
ในกรณีนี้ทั้งสองbashrc
ไฟล์ถูกอ่านเพราะแต่ละprofile
ไฟล์มีคำสั่งที่จะรวมไม่ใช่เพราะเชลล์ล็อกอินนั้นมาจากแหล่งโดยตรง
$ ssh sorontar@localhost :
/etc/bash.bashrc was read
/home/sorontar/.bashrc was read
ในระบบนี้bashrc
จะอ่านที่ไหนในทั้งสองกรณี
ไม่จำเป็นต้องเพิ่มsource ~/.bashrc
คำสั่งเพื่อดำเนินการ
เปลี่ยนเส้นทาง
สิ่งที่คุณต้องทำคือรวมการตั้งค่าที่ถูกต้องเพื่อเปลี่ยน "$ PATH" ทั้ง/etc/bash.bashrc
สำหรับผู้ใช้ทั้งหมดที่เริ่มเชลล์ในระบบนี้ หรือใน~/.bashrc
สำหรับผู้ใช้แต่ละคนที่ต้องการมัน คุณสามารถเพิ่ม (หรือแก้ไข) โครงกระดูกของผู้ใช้.bashrc
เพื่อ/etc/skel/
ให้ผู้ใช้ใหม่ที่สร้างขึ้นมีไฟล์ที่ถูกต้อง
ด้านบนใช้สำหรับทุบตีเท่านั้น หากคุณต้องการการตั้งค่าให้ทำงานกับเชลล์ทั้งหมดอาจตั้งค่าตัวแปรสภาพแวดล้อม PATH โดยใช้ไฟล์ ssh ~/.ssh/environment
สำหรับผู้ใช้แต่ละคนที่ต้องการ หรือใช้/etc/ssh/sshrc
สำหรับการตั้งค่าส่วนกลางในระบบที่เซิร์ฟเวอร์ ssh ทำงาน (โปรดอ่านส่วนไฟล์ในman sshd
เพื่อดูรายละเอียดเพิ่มเติม)
.bashrc
มีที่มา แต่ก็อาจมีการทดสอบการโต้ตอบที่ด้านบน~/.pam_environment
สิ่งที่คุณใส่ก่อนการตรวจสอบที่ควรนำไปใช้และนั่นคือสิ่งที่ผมทำเพื่อให้มีผลบังคับใช้เส้นทางเมื่อเซิร์ฟเวอร์ไม่อนุญาตให้สภาพแวดล้อมของผู้ใช้หรือการใช้งาน