Смонтируйте удаленную файловую систему с помощью SSHFS [закрыто]

StackOverflow https://stackoverflow.com/questions/1135446

  •  16-09-2019
  •  | 
  •  

Вопрос

Хорошо, установка немного запутанная.Не вините меня, я не сисадмин.

Вот ситуация.Есть одна машина, к которой я могу подключиться по 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.Очевидно, вам нужно будет найти их в удаленной системе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top