我业余地为我们的研究小组管理一个共享的 Ubuntu 服务器。我安装了许多工具以满足自己的需要,这些工具可能也会对我小组中的其他人有用。
我如何才能让所有其他用户知道所有已安装的软件?尤其是当他们第一次登录时,并始终让他们知道在哪里查看软件列表?
是否有既定的方法来处理这个问题?
一些明显的方法有着不受欢迎的缺点:
- 只要口头告诉他们:这不好。工具清单可能很长,而且我总有一天会毕业。
- 留下 README:这并不理想,因为对于新生来说,他们不知道它的存在。他们可能会看到 README,误以为它是其他内容,然后忽略它。
答案1
当您连接到 Ubuntu 服务器时,您会看到“每日消息”(MOTD) - 这是可定制的。
Ubuntu 从 中的一组编号脚本动态构建 MOTD /etc/update-motd.d
。这些是按顺序运行的 BASH 脚本 - 因此00-header
首先运行,然后运行下一个以数字命名的脚本。例如,Ubuntu 16.04/etc/update-motd.d
默认包含以下文件:
- 00-标题
- 10-帮助文本
- 90 个更新可用
- 91-发布-升级
- 97-覆盖根
- 98-fsck-重启时
- 98-需要重新启动
- 99-esm
如果您想在标题和帮助文本之间添加一条消息,请在名为的文件中创建一个 bash 脚本01-custom-message
并添加您的消息。
当您的用户登录到服务器时,他们会看到该消息。
以下是显示带有链接的工具表的示例脚本:
#!/bin/bash
# save this file as /etc/update-motd.d/01-custom-message
intro="Your Introductory message."
printf "%s\t"
divider===============================
divider=$divider$divider$divider
header="\n %-10s %-40s %-30s\n"
format=" %-10s %-40s %-30s\n"
width=80
printf "\n%s\n" "${intro}"
printf "$header" "TOOL" "DESCRIPTION" "URL"
printf "%${width}s\n" "$divider"
printf "$format" \
"Tool1" "This tool is used for x." "https://example.com/tool1"\
"Tool2" "This tool is used for y." "https://example.com/tool2"\
"Tool1" "This tool is used for z." "https://example.com/tool3"
或者,您可以在服务器上创建 HTML 格式的参考页面,并在 MOTD 消息中留下对该页面的引用(带有链接)。
来自 Ubuntu 手册页:
MOTD 片段必须是 /etc/update-motd.d 中的脚本,必须是可执行的,并且必须在标准输出上发出信息。
脚本应命名为 NN-xxxxxx,其中 NN 是一个两位数,表示其在 MOTD 中的位置,xxxxxx 是该脚本的适当名称。
根据 run-parts(8) --lsbsysinit 指令,脚本不能有文件扩展名。
软件包应将脚本直接添加到 /etc/update-motd.d,而不是添加到其他脚本的符号链接中,这样管理员就可以修改或删除这些脚本,并且升级不会抹去本地更改。考虑使用一个简单的 shell 脚本,只需在外部实用程序上调用 exec 即可。
http://manpages.ubuntu.com/manpages/trusty/man5/update-motd.5.html