เป็นไปได้หรือไม่ที่จะใส่คำสั่งใน / etc / motd?


14

ฉันสามารถใส่คำสั่งเชลล์ใน/etc/motdไฟล์แบนเนอร์การเข้าสู่ระบบได้หรือไม่ ฉันเหนื่อย:

 $(uptime)

และ

`uptime`

เป็นไปได้ไหม

คำตอบ:


15

/etc/motd อ่านเท่านั้นและไม่ได้ดำเนินการดังนั้นในทางเทคนิคแล้วคุณไม่สามารถใส่คำสั่งเชลล์ลงไปได้

อย่างไรก็ตามเป็นไปได้ที่จะเรียกใช้งานเชลล์สคริปต์ในเวลาล็อกอินซึ่งจะมีผลลัพธ์เหมือนกัน นี้มักจะทำได้โดยการปรับ/etc/profileสคริปต์ที่จะดำเนินการในแต่ละครั้งที่ใช้บันทึกใน. การปฏิบัติที่เป็นประโยชน์ที่จะนำคำสั่งที่คุณต้องการที่จะดำเนินการในสคริปต์ชื่อ/etc/motd.shและเรียกสคริปต์นี้จาก/etc/profileปกติจะอยู่ที่เกี่ยวกับการสิ้นสุดของมัน


3
ไม่ใช่เรื่องธรรมดาที่จะใช้ /etc/motd.sh

1
@EricDANNIELOU ใช่เราสามารถใช้ชื่อสคริปต์ใดก็ได้ที่เขา / เธอต้องการ ฉันเพิ่งลบคำคุณศัพท์ทั่วไปที่ไม่เหมาะสม แต่ถึงกระนั้นการมีชื่อนี้ด้วยวิธีนี้ทำให้ง่ายต่อการมองเห็นและรู้ว่าจุดประสงค์อะไร
Tonin

1
ดูเหมือนว่าจะมีวิธีการใช้ cron เพื่อแทนที่ข้อความ motd คงที่เป็นประจำ: md3v.com/create-a-linux-server-status-motdฉันคิดว่าสคริปต์โปรไฟล์นี้ดูเหมือนจะเป็นวิธีที่ดีกว่าชิ้นส่วนที่เคลื่อนไหวน้อย
CMCDragonkai

5
การนำเอาท์พุทเช่น MOTD ในโปรไฟล์ของคุณมีแนวโน้มที่จะทำลาย sftp
Stuart P. Bentley

5
คุณสามารถวางmotd.shภายในสคริปต์ด้วยสิทธิ์/etc/profile.d/ วิธีนี้คุณจะไม่จำเป็นต้องโทรได้จาก755 /etc/profile
Itay Grudev

8

ในเซิร์ฟเวอร์Ubuntuมีโปรแกรมที่เรียกว่าupdate-motdจากแพ็คเกจlibpam-modules:

ผู้ดูแลระบบ UNIX / Linux มักสื่อสารข้อมูลสำคัญกับคอนโซลและผู้ใช้ระยะไกลโดยการดูแลรักษาข้อความในไฟล์ / etc / motd ซึ่งแสดงโดยโมดูล pam_motd (8) ในการล็อกอินเชลล์แบบโต้ตอบ

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

Ubuntu ได้เปิดตัวเฟรมเวิร์ก update-motd โดยที่ motd (5) ถูกรวบรวมแบบไดนามิกจากชุดของสคริปต์เมื่อเข้าสู่ระบบ

/etc/update-motd.d/คอลเลกชันของสคริปต์นี้อาศัยอยู่ภายใต้ สำหรับข้อมูลเพิ่มเติมโปรดดูที่นี้หน้าวิกิพีเดีย

อีกทางเลือกหนึ่งในการสร้าง/etc/motdแทนที่จะเรียกใช้สคริปต์เมื่อเข้าสู่ระบบคือการมีงาน cron แน่นอนว่ามันไม่เหมือนกัน แต่ฉันได้พบกับวิธีการนี้บางครั้งในอดีต โปรดทราบว่าวิธีการนี้ถูกใช้ด้วยupdate-motdเช่นกัน แต่ถูกทอดทิ้งเนื่องจากปัญหาที่พบ คุณสามารถหาข้อมูลอีกเล็กน้อยเกี่ยวกับเรื่องนี้ที่นี่


1
ที่เกี่ยวข้องการโพสต์ askubuntu sudo run-parts /etc/update-motd.d/กองทัพด้วย
Pablo A

1
สิ่งนี้ยังช่วยลดความล่าช้าในการเข้าสู่ระบบเมื่อเริ่มต้นเนื่องจากคุณไม่ต้องประเมินสคริปต์เมื่อเข้าสู่ระบบ (สมมติว่ามันซับซ้อนกว่าuptime)
ayman

0

สำหรับเซิร์ฟเวอร์Centos 7ฉันแนะนำให้ใช้พอร์ตของฉันupdate-motd.dจาก Ubuntu

แตกต่างจากโซลูชันอื่น ๆ ซึ่งทำให้ MOTD แบบไดนามิกแสดงจริงเพียงครั้งเดียวเมื่อคุณ SSH / เข้าสู่ระบบผ่านคอนโซล (โซลูชันอื่น ๆ จะแสดงผลเมื่อคุณเปิดscreenหน้าต่างใหม่เป็นต้น)

ติดตั้งด้วย:

yum install https://github.com/gdubicki/centos-pam-with-update-motd/releases/download/1.1.8-1022.3/pam-1.1.8-1022.el7.x86_64.rpm

ใช้กับ:

  1. /etc/motdลบคงเริ่มต้น
  2. ยี่ห้อ SSHD ไม่แสดง MOTD คงมีเส้นPrintMotd no, Banner none, UsePAM yes(และเลือกPrintLastLog no) ในของคุณ/etc/ssh/sshd_configและโหลดsshdบริการ
  3. เพิ่มบรรทัดนี้ของคุณ:/etc/pam.d/sshdsession optional pam_motd.so motd=/run/motd.dynamic
  4. เพิ่มสคริปต์ของคุณไปที่/etc/update-motd.dเช่นบน Ubuntu

โปรดดูhttps://github.com/gdubicki/centos-pam-with-update-motdสำหรับข้อมูลล่าสุด

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