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


13

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

 $(uptime)

`uptime`

这可能吗?

Answers:


15

/etc/motd 只能读取而不执行,因此从技术上讲,您不能在其中放置shell命令。

但是,可以在登录时执行将具有相同结果的Shell脚本。通常,这是通过调整/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 2014年

4
在配置文件中放入MOTD之类的输出可能会破坏sftp。
斯图尔特·本特利

4
您可以将motd.sh脚本放置在/etc/profile.d/具有权限的位置755。这样,您无需从调用它/etc/profile
伊泰·格鲁杰夫

8

在Ubuntu服务器中,有一个名为update-motdpackage的程序libpam-modules

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

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

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

这个脚本集合位于/etc/update-motd.d/。有关更多信息,请参见此Wiki页面

/etc/motd除了生成脚本而不是在登录时运行脚本之外,生成脚本的另一种方法是执行cron作业。当然是不一样的,但是我有时在过去遇到过这种方法。


1
相关askubuntu帖子。用力sudo run-parts /etc/update-motd.d/
Pablo A

1
由于您不必在登录时评估脚本(假设脚本比更为复杂uptime),因此这也将启动时的登录延迟最小化。
艾曼(Ayman)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.