डेबियन जेसी 8.2 में ssh के लिए दिन का एक गतिशील संदेश (motd) कैसे सेट करें?


16

मैं एक गतिशील गति करना चाहता हूं, लेकिन मैं यह नहीं कर सकता कि यह कैसे करना है।

मैंने कोशिश की है कि मैं क्या पाया, जोड़ने /etc/update-motd.d/00-header, 10-sysinfo, 90-footer, और symlinking को /etc/motd /var/run/motd.dynamic, /run/motd.dynamic, /run/motdया /var/run/motd

मुझे ये पंक्तियाँ मिली हैं /etc/pam.d/sshd:

# Print the message of the day upon successful login.
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
session    optional     pam_motd.so  motd=/run/motd.dynamic
session    optional     pam_motd.so noupdate

मैं भी systemd के साथ उलझन में हूँ।

क्या इसे करने का कोई तरीका है? क्या कोई एक साधारण भाग्य के साथ एक उदाहरण प्रदान कर सकता है?


pam_motd.so noupdateवहाँ समस्या नहीं होगी ?
जकूजी

जवाबों:


11

मैं नीचे दिए गए उदाहरण के रूप में अपने डेबियन जेसी 8.2 होस्ट पर भाग्य के उदाहरण के साथ सरल गतिशील-गति का परीक्षण करने में सक्षम हूं और इस मुद्दे को छोटी गाड़ी के व्यवहार से संबंधित पाया।

mkdir /etc/update-motd.d
cd /etc/update-motd.d

नीचे के रूप में दो परीक्षण फ़ाइलों को बनाया और उन्हें निष्पादन योग्य बनाया

root@debian:/# cd /etc/update-motd.d/
root@debian:/etc/update-motd.d# ls -l 
total 8
-rwxr-xr-x 1 root root 58 Dec  1 23:21 00-header
-rwxr-xr-x 1 root root 41 Dec  1 22:52 90-fortune
root@debian:/etc/update-motd.d# cat 00-header 
#!/bin/bash
echo
echo 'Welcome !! This is a header'
echo
root@debian:/etc/update-motd.d# cat 90-fortune 
#!/bin/bash
echo
/usr/games/fortune
echo

हालांकि इस समय, मोट में कोई बदलाव नहीं हुआ था। इसलिए मैं sshd प्रक्रिया को स्ट्रीम करूंगा। उस ट्रेस (नीचे दिखाए गए दिलचस्प भाग) से, आप देख सकते हैं कि नई बनाई गई motd.new फ़ाइल का नाम बदलकर / var / run / motd कर दिया गया है। हालाँकि यह बाद में /run/motd.dynamic से पढ़ने की कोशिश कर रहा है - जो कभी नहीं बना था

20318 rename("/var/run/motd.new", "/var/run/motd") = 0
20318 open("/run/motd.dynamic", O_RDONLY) = -1 ENOENT (No such file or directory)
20318 open("/etc/motd", O_RDONLY)       = 8

समस्या pam_motd मॉड्यूल के साथ विसंगतियों से संबंधित लगती है। बग रिपोर्ट देखें https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743286&msg=2

सीधे शब्दों में से motd फ़ाइल स्थान बदलने /run/motd.dynamicके लिए /run/motdमें /etc/pam.d/sshdहै - यह मेरे लिए काम करता है

root@debian:/etc/pam.d# grep pam_motd sshd
#session    optional     pam_motd.so motd=/run/motd.dynamic
session    optional     pam_motd.so motd=/run/motd
session    optional     pam_motd.so noupdate

यहाँ नमूना लॉगिन ssh लॉगिन के दौरान देखा गया है ...

Welcome !! This is a header


* Culus fears perl - the language with optional errors


The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Tue Dec  1 23:49:57 2015 from x.x.x.x

धन्यवाद, इससे मदद मिली! मुझे .newअंत में जोड़ना था /etc/pam.d/sshd: session optional pam_motd.so motd=/run/motd.newऔर लिंक sudo ln ds /run/motd /etc/motd। और मैं export LANG="eo"भाग्य देखना भूल गया ।
बत्तीस

यह समाधान डेबियन 7. के लिए भी काम करता है
azmeuk

यह बुनियादी समाधान डेबियन स्ट्रेच 9 के लिए भी काम करता है, एक छोटे से ट्वीक के साथ - पढ़ने के लिए फाइल अब है/run/etc/motd.dynamic.new
cam8001

12

यह वर्षों में बदल गया है:

पहले /etc/motd(स्थिर) था।

इसके बाद उबंटू update-motdक्रोन नामक एक स्क्रिप्ट के आधार पर अपने स्वयं के पैकेज के साथ आया ।

अंत में, PAM ने उबंटू के आइडिया को /etc/update-motd.d/ पर कॉपी किया, और इसलिए डेबियन और अन्य लोगों ने भी उस व्यवहार को स्वीकार किया।

यहाँ एक स्पष्टीकरण है

https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/

तो यह इस प्रकार है कि चीजें वर्तमान में हैं: PAM सिर्फ पढ़ेगा /var/run/motd.dynamicऔर /etc/motdयदि यह मौजूद है (पोस्ट से पेस्ट)

  • /etc/motd- क्लासिक, स्टेटिक फाइल। उबंटू 16.04 एलटीएस में अब मौजूद नहीं है, यहां तक ​​कि / / var / run / motd के प्रतीकात्मक लिंक के रूप में भी नहीं। यदि यह बनाया गया है, हालांकि इसकी सामग्री भी मुद्रित की जाएगी।
  • /var/run/motd- यह Ubuntu के पहले कार्यान्वयन द्वारा उपयोग किया गया था। अब इसका उपयोग नहीं किया जाता है। इसे सिर्फ PAM ने नजरअंदाज किया है।
  • /var/run/motd.dynamic- यह वही है जो वर्तमान में लॉगिन पर दिखाया गया है। इसे हर बूट पर /etc/init.d/motd द्वारा अपडेट किया जाता है। PAM द्वारा /etc/update-motd.d/ में स्क्रिप्ट चलाकर भी इसे अपडेट किया जाता है, यदि वे मौजूद हैं।
  • /etc/motd.tail- उबंटू पैकेज /etc/update-motd.d को आबाद करने के लिए उपयोग किया जाता है। उनमें से एक इस फ़ाइल की सामग्री को पूरा करेगा ताकि स्थिर सामग्री को जोड़ना आसान हो। वह स्क्रिप्ट पैकेज में मौजूद नहीं है, इसलिए फ़ाइल का इच्छित प्रभाव नहीं है।

पद से उदाहरण

mkdir /etc/update-motd.d
rm -f /etc/motd                  # in Debian still exists
cat > /etc/update-motd.d/10logo <<EOF
#!/bin/sh
echo
cat /etc/issue
EOF

cat > /etc/update-motd.d/20updates <<'EOF'
#!/bin/sh
echo
echo "uptime is $( uptime )"
echo "date   is $( date   )"
EOF

chmod a+x /etc/update-motd.d/*
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.