อะไรคือวิธีที่แตกต่างกันที่ข้อความสามารถแสดงไปยัง bash shell หลังจากที่ผู้ใช้ล็อกอิน?


14

ฉันมี CentOS 5.7 VPS โดยใช้ bash เป็นเชลล์ที่แสดงคำทักทายที่มีตราสินค้าทันทีหลังจากลงชื่อเข้าใช้ผ่าน SSH ฉันพยายามแก้ไข แต่ดูเหมือนไม่สามารถหาได้ว่ามันอยู่ที่ไหนในสถานที่ปกติ จนถึงตอนนี้ฉันได้ดูในmotdไฟล์และตรวจสอบsshd_configการตั้งค่าไฟล์แบนเนอร์ ไม่ได้ตั้งไฟล์แบนเนอร์

ฉันสามารถหาข้อความล็อกอินได้ที่ไหน


1
คุณสามารถลอง recursive grepใน/etcเซตบางส่วนของข้อความ
เควิน

@ เควินเดี๋ยวก่อนคุณติดตามฉันด้วยทวิตเตอร์ไหม? ฉันเพิ่งรำพึงว่าฉันใช้ grep -r เพื่อค้นหาบางอย่าง ยกเว้นว่าฉันเป็นคนโง่และตัดสินใจที่จะเริ่มต้นที่ / =)
เวสลีย์

ผมได้เริ่มต้นที่/เกินไปใช้เวลาตลอดบนดิสก์ 1TB ให้ฉันบอกคุณ ... แต่ฉันไม่เคยได้บน Twitter :)
เควิน

@WesleyDavid คุณสามารถโพสต์ภาพหน้าจอได้หรือไม่
Karlson

คำตอบ:


22

ระบบ unix ดั้งเดิมแสดงขึ้น/etc/motdหลังจากผู้ใช้ผ่านการพิสูจน์ตัวตนสำเร็จและก่อนที่เชลล์ของผู้ใช้จะถูกเรียกใช้ บนระบบที่ทันสมัยสิ่งนี้ทำได้โดยpam_motdโมดูล PAM ซึ่งอาจถูกกำหนดค่าใน/etc/pam.confหรือ/etc/pam.d/*เพื่อแสดงไฟล์อื่น

เซิร์ฟเวอร์ SSH ตัวเองอาจจะกำหนดให้พิมพ์/etc/motdถ้าตัวเลือกที่ไม่ได้ปิดPrintMotd /etc/sshd_configนอกจากนี้ยังอาจพิมพ์เวลาของการเข้าสู่ระบบก่อนหน้าหากPrintLastLogไม่ได้ปิด

อีกข้อความดั้งเดิมอาจจะบอกคุณว่าที่หรือYou have new mail You have mailบนระบบที่มี PAM สิ่งนี้จะทำโดยpam_mailโมดูล เชลล์บางตัวอาจพิมพ์ข้อความเกี่ยวกับเมลที่มี

หลังจากเปลือกของผู้ใช้เปิดตัวไฟล์เริ่มต้นของผู้ใช้อาจพิมพ์ข้อความเพิ่มเติม สำหรับการเข้าสู่ระบบแบบโต้ตอบถ้าเปลือกเข้าสู่ระบบของผู้ใช้เป็นเปลือกบอร์นสไตล์มองใน/etc/profile, ~/.profileบวก~/.bash_profileและ~/.bash_loginสำหรับทุบตี สำหรับการเข้าสู่ระบบการโต้ตอบเพื่อ zsh ดูใน/etc/zprofile, /etc/zlogin, /etc/zshrc, ~/.zprofile, และ~/.zlogin ~/.zshrcสำหรับการเข้าสู่ระบบการโต้ตอบเพื่อ csh ดูในและ/etc/csh.login~/.login

หากเชลล์ล็อกอินของผู้ใช้เป็น bash และนี่คือการล็อกอินที่ไม่โต้ตอบดังนั้น bash จะเรียกใช้งาน~/.bashrc(ซึ่งแปลกมากเนื่องจาก~/.bashrcถูกเรียกใช้งานสำหรับเชลล์เชิงโต้ตอบเฉพาะในกรณีที่เชลล์ไม่ใช่เชลล์ล็อกอิน) นี่อาจเป็นสาเหตุของปัญหา ฉันขอแนะนำให้รวมข้อมูลโค้ดต่อไปนี้ไว้ที่ด้านบนของ~/.bashrcการประกันตัวหากเชลล์ไม่ได้ทำงานแบบโต้ตอบ:

if [[ $- != *i* ]]; then return; fi

มันเป็นชุด echos ใน. bash_profile ของฉัน > _ <คำถามนี้ไม่เกี่ยวข้องกับของจริง แต่: การสะท้อนสิ่งต่าง ๆ ใน. bash_profile ดูเหมือนจะเป็นวิธีที่ไม่ดีในการส่งข้อความหรือไม่? อาจจะดีกว่าถ้าคุณต้องการส่งข้อความถึงผู้ใช้คนเดียว นี่คือหลังจากทั้งหมดบัญชีรูท จากนั้นอีกครั้งฉันเป็น noob ดังนั้นฉันจึงไม่อยู่ในฐานะที่จะตัดสินสิ่งต่างๆ
Wesley

@WesleyDavid กำลังสะท้อนบางสิ่งในการ.bash_profileส่งข้อความถึงคุณเท่านั้น บางคนชอบที่จะเห็นข้อความที่เป็นประโยชน์หรือตลกเมื่อพวกเขาเข้าสู่ระบบฉันไม่สามารถพูดถึงบัญชีรูทของระบบของคุณเพราะฉันรู้ว่าเนื้อหาของข้อความหรือคนและการตั้งค่าที่เกี่ยวข้อง
Gilles 'ดังนั้นหยุดความชั่วร้าย'

การใส่ข้อความใน / etc / motd ทำงานบน Mac OS X ซึ่งเป็นสิ่งที่ฉันต้องการ ขอบคุณสำหรับสิ่งนั้น
dgig

8

มีไม่กี่:

/etc/motd
/etc/issue
/etc/profile - Could echo the message
/etc/profile.d/* - Would be called from /etc/profile

นอกจากนี้

/etc/bash_bashrc
/etc/.bashrc
/etc/bashrc
$HOME/.profile
$HOME/.bashrc

นอกจากนี้คุณยังอาจจะต้องไปผ่านโปรแกรมที่จะถูกเรียกจากสคริปต์เหล่านั้นทุกคนเพราะบางอย่างเช่นอาจจะมีการจัดเก็บเด็ดมันแสดงในfortune /usr/shareเพื่อแยกมันคุณสามารถทำ:

. /etc/profile
. /etc/bash.bashrc
. $HOME/.profile
. $HOME/.bashrc

ใน Ubuntu ยังมีไฟล์:

/etc/motd.tail

1
/etc/issueจะแสดงแบบดั้งเดิมก่อนที่ผู้ใช้จะเข้าสู่ระบบไม่ใช่หลังจาก
Chris Down

ขอบคุณ! ไม่ทราบเกี่ยวกับและprofile profile.dอนิจจาคำแนะนำทั้งสี่ของคุณไม่ได้ทำให้เกิดอะไรขึ้น ฉันสงสัยว่าสิ่งที่กำหนดเองถูกรวบรวมเป็นไบนารีทุบตี ... ?
Wesley

@ChrisDown ถูกต้อง แต่ฉันไม่ได้ตระหนักถึงระบบใด ๆ ที่จะวางอะไรบนหน้าจอหลังจากที่แสดงข้อความแจ้ง
Karlson

@WesleyDavid ฉันแก้ไขคำตอบแล้ว
Karlson

ขอบคุณมากสำหรับข้อมูลทั้งหมด! สิ่งนี้ทำให้ฉันได้เรียนรู้วิธีการต่างๆที่หอยสามารถส่งข้อมูลไปยังเซสชัน TTY =)
Wesley

3

ระบบที่ใหม่กว่าจะจัดเก็บส่วนประกอบ MOTD /etc/update-motd.dเพื่อให้สามารถเรียกใช้แมโครต่างๆเพื่อปรับแต่ง motd ให้มีข้อมูลอัปเดตการแจ้งเตือนระบบ ฯลฯ แสดงเมื่อเข้าสู่ระบบ

เพิ่มการปรับแต่งของคุณเป็นไฟล์อื่นที่มีลำดับความสำคัญตั้งแต่00ถึง99

99-footerมักจะโหลด/etc/motd.tailหากการตรึงไว้ที่ส่วนท้ายนั้นเพียงพอและคุณไม่ต้องการใช้รายการแมโครใด ๆ


1

คุณสามารถดู/etc/shellนั่นคือที่ฉันพบข้อความที่ฉันพยายามเปลี่ยน ไม่สามารถแสดงความคิดเห็นด้วย "#" คุณเพียงแค่ลบข้อความและเพิ่มของคุณเอง นอกจากนี้ยังมีช่องว่างและบรรทัดใหม่จะปรากฏขึ้นเมื่อคุณวางไว้ในไฟล์

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