Ошибка «Отказано в доступе» без подключения SSH

Ошибка «Отказано в доступе» без подключения SSH

У меня есть сервер 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) и шифруется обратно при закрытии сеанса. Это не идеально для серверного использования, если вам нужно обслуживать/хранить некоторые данные этого пользователя.

Вы можете хранить данные где-то еще (самое простое решение :) ) или отключить шифрование. Если ни один из этих вариантов не подходит, пожалуйста, предоставьте больше подробностей о том, чего вам нужно добиться.

Возможно, есть способ сохранить и сессию (я об этом не узнал), так что каталог не будет зашифрован, но тогда, вероятно, нет смысла в шифровании. :)

Связанный контент