
У меня есть сервер Ubuntu 12.04, на котором запущено приложение python. Приложение запускается вручную tmux
или автоматически при запуске сервера.
Приложение обрабатывает http-запросы от клиентов Android. Сохраняет некоторые данные на жесткий диск:
os.mkdir(directory_path)
with open(file_name, "w") as f:
f.write(text)
Приложение отправило исключения в чат Telegram:
OSError: [Errno 13] Permission denied: '/home/username/Desktop'
При активном ssh-подключении все работает отлично. После закрытия клиентского ssh-терминала в журнале сервера появляется множество ошибок "Отказано в доступе" о попытке создания файла или каталога. После подключения по ssh (только подключение, без выполнения каких-либо команд) все снова работает отлично, и приложение создает новые файлы или папки.
-- Это происходит, когда программа запускается сервером, а не в сеансе tmux? Да. Проблема возникает в обоих случаях.
-- Присоединяется ли к машине автоматически к сеансу tmux? Нет. Присоединение к tmux выполняется вручную (tmux a). Приложение отлично работает после подключения к серверу по ssh. Присоединять tmux не обязательно.
Как соединение SSH может повлиять на запущенный процесс приложения или права доступа к системе?
решение1
Default-home-directories-encryption в Ubuntu работает так, что каталог расшифровывается при открытии сеанса (PAM) и шифруется обратно при закрытии сеанса. Это не идеально для серверного использования, если вам нужно обслуживать/хранить некоторые данные этого пользователя.
Вы можете хранить данные где-то еще (самое простое решение :) ) или отключить шифрование. Если ни один из этих вариантов не подходит, пожалуйста, предоставьте больше подробностей о том, чего вам нужно добиться.
Возможно, есть способ сохранить и сессию (я об этом не узнал), так что каталог не будет зашифрован, но тогда, вероятно, нет смысла в шифровании. :)