В системе Ubuntu 18.01 LFS (мой частный домашний сервер, доступный только из моей домашней локальной сети) я создал веб-приложение Apache / WSGI / flask, которое монтирует зашифрованные диски (через cryptsetup luksOpen
, а затем mount
) на веб-запрос. Пароль для cryptsetup отправляется через HTTP POST, Python-скрипт (который вызывает себя через sudo, а затем вызывает cryptsetup
и mount
через subprocess.run) вводится в /etc/sudoers.d ... без необходимости пароль, так что все работает нормально с sudo -u www-data ./starthepythonscript_that_mounts_stuff_via_sudo.py
без пароля. После вызова этого скрипта я вижу смонтированные диски и cd
в них.
Однако это поведение кажется другим, когда скрипт вызывается из того же пользователя "www-data", но из службы Apache WSGI Ubuntu. В этом случае монтирование кажется успешным, но монтирования не видны в системе (ни при перечислении содержимого соответствующей смонтированной папки, ни при наборе mount
- например, как root - в системе, в которой работает Apache). Они просто не отображаются - существует ли какой-то механизм песочницы, реализованный для службы Apache в Ubuntu?
Моя цель - смонтировать диски с помощью скрипта Apache / WSGI / flask / sudo, но «обычным» образом, чтобы пользователи на одной машине могли видеть это через mount
или cd
.
Любая подсказка приветствуется!