Я пытаюсь редактировать motd, но вместо скриптов bash я хочу использовать скрипты Python. Оказывается, что скрипты 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
Я нашел решение сам: лучший способ решить эту проблему состоит в том, чтобы создать virtualenv (сначала устанавливают его с sudo apt-get install python-virtualenv
)
Затем инициируйте его с virtualenv path/to/env
Активируйте его source path/to/env/bin/activate
Установите все зависимости с pip3
Затем в motd файлах я просто изменил хижину для указания на virtualenv
#!path/to/env/bin/python3