Как @allquixotic заявил в своем ответе, вы можете использовать SSHFS для монтирования удаленного пути в локальной папке. Чтобы добиться того, что вы просили, вам нужно решение, подобное этому.
Поскольку SSHFS использует протокол передачи файлов SSH в качестве основы, это означает, что сервер создается при входе в систему в качестве пользователя. Но это также означает, что вы не можете напрямую выполнить su
, потому что оболочка не создается.
Чтобы обойти это, запустите сервер от имени root, и вы можете сделать это с -o sftp_server
как указано в документации. Как это:
sshfs username@host:remote_path local_mount_path -o sftp_server="/usr/bin/sudo /usr/libexec/openssh/sftp-server"
Однако, поскольку sudo
требует аутентификации (очевидно), вам нужен способ аутентификации. Вы можете использовать две разные альтернативы:
- Используйте файл sudoers, чтобы добавить возможность
sftp-server
вашим пользователем без запроса пароля. Посмотрите, как это сделать здесь (не важно, для Ubuntu).
Запустите sudo
с SSH, а затем выполните команду sshfs
. Это позволит выполнить sudo без пароля, поскольку вы уже выполнили его за мгновение до этого. Это обновит тайм-аут на 5 минут:
ssh username@host sudo -v
Вы также можете попытаться передать пароль напрямую в sudo
, но я не рекомендую это делать, поскольку он небезопасен и, вероятно , не будет работать, поскольку сервер не порождается оболочкой.