Чи можливо автоматично монтувати sshfs


10

Чи можливо автоматично встановити віддалений FS за допомогою sshfs при встановленні належного VPN-з'єднання?

Дозвольте мені пояснити сценарій, я працюю віддалено, щоб це допомогло, якщо я можу встановити домашній dir з сервера в офісі. Для цього мені потрібно пройти vpn. Тож у менеджері мережі я вибираю відповідну VPN та підключаюсь. Він підключається, але тепер я повинен перейти до командного рядка і встановити свій домашній dir на декількох машинах.

Якщо я забуду зробити одну машину, моє місцеве середовище розробників не настільки ефективно. Я вважаю, що я можу написати швидкий скрипт bash, щоб це зробити, але я скоріше запускаю його автоматично під час підключення.



@Seth Це питання дублює це;)
Раду Радеану

@ RaduRădeanu Це питання є більш загальним, тому воно буде кориснішим людям у майбутньому.
Сет

Насправді я передумав, вони абсолютно різні питання.
Сет

Відповіді:


12

Знайдіть UUID свого з'єднання за допомогою

$ nmcli con

Зауважте, що тут перераховані не лише фізичні з'єднання, але й визначені бездротові з'єднання (SSID).

Помістіть у своєму /etc/NetworkManager/dispatcher.d/каталозі такий простий сценарій :

#!/bin/bash

# Specify your connection UUID you like to trigger on below.
MYCON_UUID=397bdb70-2a89-415e-b3e9-09ca0b704fc1

if [ "$CONNECTION_UUID" == "$MYCON_UUID" ]
then
    # do your scripting you need to do here:
    mount -t sshfs ...
fi

Не забудьте встановити правильні дозволи, щоб зробити його виправданим (тобто chmod +x trigger-sshfs-on-vpn.sh). Це може бути будь-який тип сценарію, сценарій Bash, ймовірно, достатній для ваших цілей.

NetworkManager просто виконує всі сценарії в цьому каталозі, надаючи деякі змінні середовища, які можна використовувати для сценаріїв. У цьому випадку вам, мабуть, просто потрібно CONNECTION_UUID.


Це здається найкращим способом зробити це. Однак я не можу взятися mount -t sshfs user@host:/dir /home/myuser/dirза роботу, тому я спробував, sshfs hostname:?directory /home/myuser/dirале це, здається, теж не працює. Будь-які ідеї?
Марк D

@MarkD Ваша проблема виникає лише в диспетчерському сценарії NetworkManager? Якщо ні, то, можливо, ви захочете поставити ще одне питання для цього. І будь ласка, будьте більш конкретними щодо "не працює".
gertvdijk

@gertvdijk Що робити, якщо я використовую ключ ssh prv для підключення, і я хочу мати такі ж дозволи, як і користувач, що запускає sshfs? значить, чи будуть працювати і дозволи?
confiq

1
@confiq Ні, NetworkManager запустить цей скрипт як корінь. Як і будь-яке інше виклик з root як користувача, використовуйте su. Напр. su -l username -c 'mycommand'
gertvdijk

1

Використовуйте автофікси.

Autofs автоматично змонтує папку, яка налаштована як точка монтування, коли хтось або щось має доступ до неї у вашій системі.

Точка монтування може бути віддаленим вузлом через sshfs, а також довільною іншою точкою монтажу, такою як:

  • самба
  • nfs
  • NTFS

ось приємний хауто


Хоча автофайли працюватимуть, якби мережа була доступна деякий час. Він доступний лише тоді, коли я підключений до vpn.
Марк D
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.