如何告诉其他用户所有已安装的软件?

如何告诉其他用户所有已安装的软件?

我业余地为我们的研究小组管理一个共享的 Ubuntu 服务器。我安装了许多工具以满足自己的需要,这些工具可能也会对我小组中的其他人有用。

我如何才能让所有其他用户知道所有已安装的软件?尤其是当他们第一次登录时,并始终让他们知道在哪里查看软件列表?

是否有既定的方法来处理这个问题?

一些明显的方法有着不受欢迎的缺点:

  1. 只要口头告诉他们:这不好。工具清单可能很长,而且我总有一天会毕业。
  2. 留下 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

相关内容