我正在尝试编辑 motd,但我想使用 Python 脚本而不是 bash 脚本。事实证明,Python 脚本不适用于导入的库。
例如,这将有效:
#!/usr/bin/env python3
print("Hello")
然而,这是行不通的:
#!/usr/bin/env python3
import psutil
print(f"Users: {len(psutil.users())}")
使用该命令时,sudo update-motd
两个脚本均有效,但当我尝试通过 ssh 连接时,只有上面的脚本有效。我已经检查了 ssh 的以下设置:
在 /etc/ssh/sshd_config 中 PrintMotd 已启用:
PrintMotd yes
在 /etc/pam.d/ssh 中我对 motd 有以下设置:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
我正在使用 Ubuntu 18.04.3 LTS x86_64
答案1
我自己找到了解决方案:解决这个问题的最好方法是创建一个虚拟环境(首先用 安装它sudo apt-get install python-virtualenv
)
然后启动它virtualenv path/to/env
激活它source path/to/env/bin/activate
使用 pip3 安装所有依赖项
然后在 motd 文件中,我只需将 shebang 更改为指向虚拟环境
#!path/to/env/bin/python3