Я сменил свою операционную систему с Windows на Fedora несколько дней назад. Так что я действительно новичок во всем, что касается Linux.
Моя основная цель — добавить удаленный диск (мой облачный диск) при запуске, чтобы я мог его использовать. Я попытался создать скрипт bash, который будет выполняться при запуске с помощью sftp
. Я нашел следующий код
sshfs [email protected]:/targetpath ~/mountdir
Моя проблема в том, чтоэто работает с правами root, но не работает с правами моего пользователя. Выполняя с моими обычными привилегиями, я получаю ошибку read: Connection reset by peer
. Поскольку я хочу выполнить это при запуске, я не хочу использовать права root.
Я также искал решение, позволяющее сохранить мое имя пользователя и пароль, но пока не нашел ничего, что позволило бы мне не вводить их каждый раз.
Фон
Фстаб: Я много гуглил, что привело меня к fstab
файлу в первую очередь. Я потратил целый день и в итоге сломал систему, потому что при запуске системы не было интернет-соединения, поэтому целевой диск не мог быть включен (по крайней мере, я думаю, что это то, что происходило).
Скрипт (WebDAV, sftp): Затем я попытался использовать WebDAV с
mount -t davfs2 https://webdav.example.com ~/mountdir
но это также работает только с правами root (Ошибка: mount: only "root" can do that
). Моим следующим шагом было использование sftp, который, кажется, работает лучше. Но затем я получил ошибку, упомянутую выше (Ошибка: read: Connection reset by peer
).
Я не хочу хранить файлы локально, так как на диске недостаточно места.
Извините, если это глупый или очень простой вопрос, но я не вижу, как продолжить. Спасибо за помощь.
решение1
Никогда не запускайте скрипт как root! Я могу придумать несколько причин, когда запускать скрипт как root, но в целом это не очень хорошая идея. sshfs
Также для работы не нужен root! :)
Это должно позволить вам смонтировать удаленную файловую систему SSH с паролем, используя sshfs
(было бы лучше, если бы вы могли использовать сертификат вместо пароля).
echo <mypassword> | sshfs <myuser>@<site.tld>:/ ~/<myfolder> -o workaround=rename -o password_stdin
Заменить <mypassword>
, <myuser>
, <site.tld>
и <myfolder>
.
Пример:
echo 4ghNZGpk182q8SvY0kw0 | sshfs [email protected]:/ ~/diblo -o workaround=rename -o password_stdin
ПРИМЕЧАНИЕ:Убедитесь, что папка монтирования ~/<myfolder>
существует, или создайте ее (не забудьте создать папку от имени пользователя Linux, от имени которого вы хотите запустить скрипт):
mkdir -p ~/<myfolder>
Заменять <myfolder>
.