update-motd.d脚本未运行

时间:2016-12-11 17:22:05

标签: bash ubuntu ssh ubuntu-14.04

我在下面创建了一个测试脚本,以添加到/etc/update-motd.d/05-lsb-release

#!/bin/sh
echo
lsb_release -a

但是当我重新启动机器时,重新启动SSH并通过SSH连接到它我没有看到应用的更改

Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-105-generic x86_64)

0 packages can be updated. 0 updates are security updates. 

Last login: Sun Dec 11 17:08:40 2016 from xxx.xxx.xxx.xxx
paul@ubuntu1404:~$

/var/run/update-motd.dynamic中的输出与上面相同,但/var/run/update-motd.dynamic.new显示正确的信息

Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-105-generic x86_64)

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty

0 packages can be updated.
0 updates are security updates.

我在登录时如何看到更改?

我正在运行Ubuntu 14.04.5 LTS的最新更新

4 个答案:

答案 0 :(得分:5)

您的motd脚本可能有错误。检查一下:

run-parts /etc/update-motd.d/ > /dev/null

如果此命令报告错误,则需要修复它们。

答案 1 :(得分:1)

它在PAM中配置。查看文件/etc/pam.d/sshd。有一行如

session    optional     pam_motd.so noupdate

在登录时会阻止动态更新(您的"动态" MoTD非常静态,所以每次登录都无法更新它,不是吗?)。

AskUbuntu中描述了更多内容。

答案 2 :(得分:0)

像(ubuntu?也许也是debian?)系统那样测试您的motd

/usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d

(摘自该博客https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/

在我的情况下,lolcat死于utf8字符,因为它是以ASCII作为语言启动的,该语言通过在lolcal调用前面加上LANG=en_US.UTF-8 lolcat ...

来解决。

答案 3 :(得分:-1)

enter image description here

对于那些只是想要更新静态消息的新版Ubuntu版本,/etc/motd.tail现在是/etc/motd(是的,你必须创建这个文件),所以对于简单的静态更改,该位置有在Ubuntu版本之间略有改变。使用ssh远程登录计算机时会显示此文件

使用sudo vi /etc/motd然后将其粘贴到...

 ^[[1;37m______ ______ ______ ______
|______|______|______|______|
| | ^[[1;31m____ ^[[1;33m     ^[[1;32m_  ^[[1;34m    ^[[1;36m     ^[[1;37m| |
| |^[[1;31m/ ___|^[[1;33m___ ^[[1;32m| | ^[[1;34m___  ^[[1;36m_ __^[[1;37m| |
| ^[[1;31m| |   ^[[1;33m/ _ \^[[1;32m| |^[[1;34m/ _ \^[[1;36m| '__|^[[1;37m |
| ^[[1;31m| |__^[[1;33m| (_) ^[[1;32m| ^[[1;34m| (_) ^[[1;36m| |  ^[[1;37m| |
| |^[[1;31m\____^[[1;33m\___/^[[1;32m|_|^[[1;34m\___/^[[1;36m|_|  ^[[1;37m| |
|_|____ ______ ______ ____|_|
|______|______|______|______|
^[[0m

接下来,使用vi,将^[替换为正确的“转义”字符(x1B字符)。

  • 在vi中,按
  • 接下来输入以下内容:%s/\^\[/(执行点击输入
  • 现在输入 Ctrl + v 然后点击 Esc
  • 最后,输入/g,最后点击 Enter
  • 如果操作正确,^[会从灰色变为蓝色。如果没有,请按 u 撤消。

    这一切都在做什么?嗯......
      

    %s(搜索)
      /(第一项)
      \^\[(转义版^[
      /(第二项)
      (我们使用键盘插入实际的Esc
      /g(重复所有事件)

注意:尽管外观奇怪,但蓝色^[字符完全有效ESC字符,用于为终端添加颜色。 :)

如果vi太难使用,echo $'\e[1;37m' > myfile也可以添加转义字符。此外,gedit可以比vi|nano更好地复制/粘贴这些字符。

有关更多终端颜色,请访问https://unix.stackexchange.com/a/174/190347