เปลี่ยนพา ธ เริ่มต้นสำหรับเมื่อฉัน SSH เป็นเซิร์ฟเวอร์ CentOS หรือไม่


12

ฉันมีเว็บเซิร์ฟเวอร์ CentOS 5.7 และฉันต้องการเปลี่ยนตำแหน่งเริ่มต้นที่ฉันเชื่อมต่อด้วย SSH

ขณะนี้ฉันลงจอด/home/usernameและต้องการลงจอด/homeแทน

ฉันเข้าPermitUserEnvironment yesสู่ขั้นตอนการรูทและเพิ่มไปแล้ว/etc/.ssh/sshd_config- และเมื่อฉันเข้าใจแล้วมันก็ทำให้sshโฟลเดอร์ของผู้ใช้เป็นenvironmentไฟล์ สิ่งที่ฉันไม่แน่ใจคือสิ่งที่ฉันเพิ่มลงในไฟล์สภาพแวดล้อมนี้อย่างที่export path=$PATH:$HOMEดูเหมือนจะไม่ทำงานไม่ว่าจะที่นี่หรือในไฟล์. bashrc หรือ. bash_profile (ซึ่งฉันเข้าใจว่ามันจะไม่สร้างความแตกต่าง อย่างไรก็ตามการเชื่อมต่อ SSH เป็นเชลล์แบบไม่โต้ตอบหรือไม่)

ขอบคุณล่วงหน้า.

คำตอบ:


14

หากคุณใช้ PAM สำหรับการรับรองความถูกต้องซึ่งน่าจะเป็นไปได้มากที่สุด /etc/passwdในฐานะหัวหน้ารากลงไปใน

ที่นั่นคุณควรเห็นชื่อผู้ใช้และเส้นทางของคุณ! เปลี่ยนที่นั่นและคุณอยู่บ้านฟรี!

แก้ไข - ขออภัยมันเพิ่งเกิดขึ้นกับฉันว่าคุณอาจไม่ต้องการเปลี่ยนโฟลเดอร์บ้านของคุณ ในกรณีนั้นเพียงเพิ่ม:

cd /home

ที่ด้านล่างของ.bashrcไฟล์ของคุณ!


4
มันเป็นเรื่องดีที่จะใช้usermodเมื่อมีการเปลี่ยนแปลงอะไรที่เกี่ยวข้องกับผู้ใช้ที่เขียนไปเพื่อป้องกันความผิดพลาด:/etc/passwd usermod -d /home user
laebshade

1
ความคิดเห็นด้านนั้นเกี่ยวกับ.bashrcทำให้ฉันใบหน้าของฉัน มันเรียบง่ายและชัดเจนหวังว่าฉันจะคิดถึงมัน! ทำได้ดีมาก รุ่งโรจน์!
cwallenpoole

4

สิ่งที่ต้องจำคือ~/.ssh/environmentอ่านก่อนที่เชลล์หรือsshคำสั่งจะเกิดขึ้นดังนั้น (ตัวอย่างเช่น) การส่งออกหรือ $ PATH ไม่สมเหตุสมผล คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม (ไม่ได้ใช้คำสั่งเชลล์ทั่วไป) ที่นี่

หากคุณคว้าสภาพแวดล้อมสำหรับเชลล์ ssh แบบไม่โต้ตอบจากนั้นปรับเปลี่ยนที่คุณควรได้รับสิ่งที่คุณต้องการสำหรับคำสั่งที่ไม่ใช่แบบโต้ตอบ ตัวอย่างเช่น:

$ ssh mylogin@myserver env

จะให้สิ่งที่ ssh เริ่มต้นด้วยบนเซิร์ฟเวอร์ของคุณ หากคุณเขียน~/.ssh/environmentไฟล์เป็น:

PATH=/usr/local/bin

และรันใหม่อีกครั้งคุณควรได้รับ "bash: env: command command Found" ดี!

ตอนนี้สร้างเส้นทางของคุณอย่างชัดเจนโดยอิงจากสิ่งที่เป็นพื้นฐานจากระบบของคุณsshd(เช่นการเรียก "ssh .... env" ครั้งแรก) ตัวอย่างเช่น (เพิ่ม/usr/local/binที่ส่วนหัว):

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

โปรดทราบว่ามันไม่มีประโยชน์ที่จะลองตั้งค่า CWD ใน~/.ssh/rc(ซึ่งจะรันหลังจาก~/.ssh/environmentอ่านแล้ว แต่ก่อนหน้าsshเชลล์หรือคำสั่งของคุณ) เนื่องจากเชลล์ของคุณจะเริ่มต้น (โดยค่าเริ่มต้น) ในพา ธ โฮมของคุณ


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