.bash_profile ไม่ได้มีที่มาเมื่อเรียกใช้ su


41

ฉันมีผู้พูดuser1ซึ่งมีการปรับเปลี่ยนของ.bash_profileหนึ่งของพวกเขาเปลี่ยนแปลงเช่น:PATH export PATH=/some/place:$PATHการเปลี่ยนแปลงนี้จะทำงานได้ดีถ้าฉันเข้าสู่ระบบเป็นหรือทำuser1su - user1

แต่ถ้าฉันพยายามที่จะเรียกใช้คำสั่งผ่านทางsuเป็นrootเช่น:

su -c test.sh oracle

(มีการทดสอบecho $PATH)

ดูเหมือนว่าจะไม่มีการแก้ไขPATH(หรือรูPATHทสำหรับเรื่องนั้น) ฉันได้ลองคัดลอก.bash_profileไป.profileยังไม่มีประโยชน์

ทำไมสิ่งนี้จึงเกิดขึ้น


ใช้ - ล็อคสลับไปที่su
Nikhil Mulley

1
FYI - เขียนได้ดีในไฟล์กำหนดค่า bash hacktux.com/bash/bashrc/bash_profile
Nikhil Mulley

คำตอบ:


60

การใช้แบบsuไม่ใช้-lหรือ-เริ่มต้นbashเป็นแบบโต้ตอบ แต่ไม่ใช่แบบเชลล์ที่ไม่ได้อ่านจากไฟล์ใดไฟล์หนึ่งที่คุณระบุ ใช้-lหรือตัวเลือกหรือใส่การตั้งค่าที่เกี่ยวข้องเข้า-/root/.bashrc

ข้อมูลสรุปอย่างย่อของไฟล์กำหนดค่า:

  • เข้าสู่ระบบเปลือก ( -l/ --login) อ่าน/etc/profileครั้งแรกแล้วครั้งแรกที่พบใน: ~/.bash_profile, และ ~/.bash_login~/.profile
  • เชลล์แบบโต้ตอบ แต่ไม่ใช่ล็อกอิน ( -i) อ่าน/etc/bash.bashrcและ~/.bashrcตามลำดับ (ยกเว้นว่า--rcfileมีการใช้ตัวเลือกและบอกให้มองที่อื่น)
  • เชลล์แบบไม่มีการโต้ตอบเช่นเริ่มจากภายในโปรแกรมอื่นโดยไม่ใช้แฟล็ก-lหรือ-iแฟล็กอ่านไฟล์ที่ระบุในBASH_ENVตัวแปรสภาพแวดล้อม
  • เมื่อทำงานเหมือนกับshเชลล์ล็อกอินมันจะอ่าน/etc/profileและ~/.profileตามลำดับนั้น
  • เมื่อใช้เป็นเป็นที่ไม่ใช่การเข้าสู่ระบบแบบโต้ตอบมันอ่านไฟล์ที่ระบุไว้ในshENV

5

Bash จะทำงานแตกต่างกันไปขึ้นอยู่กับว่ามันเชื่อว่ามันเป็นล็อกอินเชลล์หรือเชลล์แรกนั้นจะทำงานเมื่อคุณเข้าสู่ระบบ มันจะอ่าน.bash_profileถ้ามันเป็นเปลือกเข้าสู่ระบบ หากคุณใส่PATHรหัส -changing เข้าไป.bashrcแทนมันจะถูกเรียกใช้สำหรับเชลล์ bash แบบโต้ตอบทั้งหมดไม่ใช่เพียงแค่ล็อกอินเชลล์


0

หากใช้สภาพแวดล้อม Gnome ใน Scientific Linux 6 (หรืออาจเป็น RHEL 6) ให้เริ่มต้นเทอร์มินัล ไปที่Edit-> Profile Preferences-> "Title and Command"แท็บ ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องทำเครื่องหมาย "เรียกใช้คำสั่งในฐานะเชลล์การเข้าสู่ระบบ" ฉันพบว่าแอปพลิเคชันเครื่องเทอร์มินัล Gnome ไม่สนใจฉัน.bash_profileเว้นแต่ว่าฉันจะทำสิ่งนี้

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