是否可以将命令放在 /etc/motd 中?

Jus*_*tin 16 linux motd

我可以将 shell 命令放在/etc/motd登录横幅文件中吗?我试过了:

 $(uptime)
Run Code Online (Sandbox Code Playgroud)

`uptime`
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Læt*_*æti 18

/etc/motd 只读取而不执行,所以从技术上讲,你不能把 shell 命令放在那里。

但是,可以在登录时执行一个 shell 脚本,它会产生相同的结果。这通常是通过调整/etc/profile每次用户登录时执行的脚本来实现的。一个有用的做法是将您想要执行的命令放在一个名为的脚本中,/etc/motd.sh并从 调用该脚本/etc/profile,通常在它的末尾。

  • 你可以将 `motd.sh` 脚本放在 `/etc/profile.d/` 中,并拥有 `755` 权限。这样你就不需要从`/etc/profile` 调用它。 (6认同)
  • 将像 MOTD 这样的输出放在您的配置文件中可能会破坏 sftp。 (5认同)
  • 使用 /etc/motd.sh 不是一种常见的做法 (3认同)

Wto*_*wer 9

Ubuntu服务器中有一个update-motd从 package调用的程序libpam-modules

UNIX/Linux 系统管理员通常通过在文件 /etc/motd 中维护文本来向控制台和远程用户传达重要信息,该文件由 pam_motd(8) 模块在交互式 shell 登录时显示。

传统上,此文件是静态文本,通常由发行版安装并仅在版本升级时更新,或者由本地管理员使用相关信息覆盖。

Ubuntu 引入了 update-motd 框架,通过该框架,motd(5) 在登录时从一组脚本中动态组装。

此脚本集合位于/etc/update-motd.d/. 有关更多信息,请参阅此wiki 页面

生成 的另一种替代方法/etc/motd是使用 cron 作业,而不是在登录时运行脚本。当然,它不一样,但我过去有时遇到这种方法。但是请注意,这种方法也被 使用update-motd,但由于遇到问题而被放弃。您可以在此处找到更多有关此的信息