Смонтируйте удаленную файловую систему с помощью SSHFS [закрыто]
Вопрос
Хорошо, установка немного запутанная.Не вините меня, я не сисадмин.
Вот ситуация.Есть одна машина, к которой я могу подключиться по SSH извне сети.Я могу удаленно войти в систему только как пользователь root (да, вы не ослышались), используя свой закрытый ключ.Я знаю, что более типично войти в систему как пользователь, а затем повысить привилегии, но в данном случае мне приходится поступать наоборот.
Проблема в том, что я хочу использовать SSHFS для удаленного монтирования файловой системы.У меня это работает отлично.Однако я не хочу, чтобы каждый файл, с которым я работаю, отражал права root.Я хотел бы сначала понизить уровень (su для учетной записи пользователя).
Кто-нибудь знает, как я могу это сделать с помощью SSHFS?
Решение
Вы можете создать скрипт для перехвата вызова подсистемы sftp на удаленной машине.Поместите следующий скрипт где-нибудь на удаленном сервере, скажем, в /root/bin/sftp_intercept:
#!/bin/sh
exec sudo -u less_privileged_user /usr/lib/openssh/sftp-server
а затем сделайте вызов так:
sshfs root@remote:dir mountpoint -o sftp_server=/root/bin/sftp_intercept
Тогда это должно дать желаемые результаты.
Вам понадобится соответствующая запись sudoers, чтобы sudo работал без запроса пароля, и не забудьте «chmod 755 ~/bin/sftp_intercept».
Также убедитесь, что /usr/lib/openssh/sftp-server действительно является путем к sftp-серверу.Если нет, то, возможно, это /usr/lib/sftp-server.
Другие советы
Страница руководства sshfs предполагает, что передача
-o uid=$YOURUID -o gid=$YOURGID
для вашего вызова sshfs следует установить для пользователя/группы файлов, которые вы создаете, этот uid/gid.Очевидно, вам нужно будет найти их в удаленной системе.