Làm cách nào để đặt Thông báo động trong ngày (motd) trong Debian Jessie 8.2 cho ssh?


16

Tôi muốn có một động lực năng động, nhưng tôi không thể tìm ra cách để làm điều đó.

Tôi cố gắng những gì tôi thấy, thêm /etc/update-motd.d/00-header, 10-sysinfo, 90-footer, và symlinking để /etc/motd /var/run/motd.dynamic, /run/motd.dynamic, /run/motdhoặc /var/run/motd.

Tôi đã có những dòng này trong /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

Tôi cũng bối rối với systemd.

Có cách nào để làm việc này không? Ai đó có thể cung cấp một ví dụ với một tài sản đơn giản?


Sẽ không pam_motd.so noupdatecó vấn đề ở đó?
Jakuje

Câu trả lời:


11

Tôi có thể kiểm tra động lực đơn giản với ví dụ may mắn trên máy chủ Debian Jessie 8.2 của tôi như dưới đây và thấy vấn đề có liên quan đến hành vi lỗi.

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

Tạo hai tệp thử nghiệm như dưới đây và làm cho chúng có thể thực thi được

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

Tuy nhiên tại thời điểm này, không có thay đổi trong motd. Vì vậy, tôi đã xử lý sshd. Từ dấu vết đó (các phần thú vị được hiển thị bên dưới), bạn có thể thấy tệp motd.new mới được tạo được đổi tên thành / var / run / motd. Tuy nhiên, sau đó cố gắng đọc từ /run/motd.dynamic - thứ không bao giờ được tạo

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

Vấn đề dường như có liên quan đến sự không nhất quán với mô-đun pam_motd. Xem báo cáo lỗi https://bugs.debian.org/cgi-bin/orpreport.cgi?orms=743286;msg=2

Chỉ cần thay đổi vị trí tệp motd từ /run/motd.dynamicsang /run/motdtrong /etc/pam.d/sshd- làm cho nó hoạt động với tôi

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

Dưới đây là mẫu MOTD được thấy trong quá trình đăng nhập 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

Cảm ơn bạn, nó đã giúp! Tôi đã phải thêm .newvào cuối /etc/pam.d/sshd: session optional pam_motd.so motd=/run/motd.newvà liên kết sudo ln ds /run/motd /etc/motd. Và tôi đã quên export LANG="eo"để xem vận may.
batisteo

Giải pháp này cũng hoạt động cho debian 7.
azmeuk

Giải pháp cơ bản này cũng hoạt động cho Debian Stretch 9, với một tinh chỉnh nhỏ - tệp cần đọc bây giờ/run/etc/motd.dynamic.new
cam8001

12

Điều này đã thay đổi qua nhiều năm:

Đầu tiên là /etc/motd(tĩnh).

Sau đó, Ubuntu đã đưa ra gói riêng của họ update-motddựa trên một tập lệnh được gọi từ cron.

Cuối cùng, PAM đã sao chép ý tưởng /etc/update-motd.d/ của Ubuntu và do đó Debian và những người khác cũng có hành vi đó.

Có một lời giải thích ở đây

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

Vì vậy, đây là cách mọi thứ hiện tại: PAM sẽ chỉ đọc /var/run/motd.dynamic/etc/motdnếu nó tồn tại (dán từ bài đăng)

  • /etc/motd- Các tập tin cổ điển, tĩnh. Không tồn tại nữa trong Ubuntu 16.04 LTS, thậm chí không phải là một liên kết tượng trưng đến / var / run / motd. Nếu nó được tạo, tuy nhiên nội dung của nó cũng sẽ được in.
  • /var/run/motd- Điều này đã được sử dụng bởi triển khai đầu tiên của Ubuntu. Nó không được sử dụng nữa. Nó chỉ bị bỏ qua bởi PAM.
  • /var/run/motd.dynamic- Đây là những gì được hiển thị trên đăng nhập hiện tại. Nó được cập nhật bởi /etc/init.d/motd mỗi khi khởi động. Nó cũng được PAM cập nhật bằng cách chạy các tập lệnh trong /etc/update-motd.d/, nếu chúng tồn tại.
  • /etc/motd.tail- Gói Ubuntu được sử dụng để điền /etc/update-motd.d. Một trong số họ sẽ cat nội dung của tệp này để dễ dàng thêm nội dung tĩnh. Kịch bản đó không còn tồn tại trong gói nữa, vì vậy tệp không có tác dụng như mong muốn.

Ví dụ từ bài viết

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/*
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.