Пользователь определенный fstab для fusermount

while read -a line; do echo -e "${line[1]}"; done < file
34
45
56
29

где file содержит Ваш список.

3
08.03.2015, 13:08
1 ответ

Нет эквивалента /etc/fstab для каждого пользователя. Вы можете написать скрипт оболочки, который прочитает выбранный вами файл и вызовет соответствующую команду монтирования. Обратите внимание, что из аргумента foo.bar, вы должны вывести несколько фрагментов информации: расположение сервера foo.bar, каталог на сервере (здесь ваш домашний каталог), и, прежде всего, тот факт, что это монтирование SSHFS.

#!/bin/bash
####
if [ -e ~/.fstab ]; then
  args=("$@")
  ((i=${#args[@]}-1))
  target=${args[$i]}
  while read filesystem mount_point command options comments; do
    if [[ $filesystem = \#* ]]; then continue; fi
    if [[ $mount_point = "$target" || $filesystem = "$target" ]]; then
      if [[ -n $options ]]; then
        args[$((i++))]=-o
        args[$((i++))]=$options
      fi
      args[$((i++))]=$filesystem
      args[$((i++))]=$mount_point
      exec "$3" "${args[@]}"
    fi
  done
fi
## Fall back to mount, which looks in /etc/fstab
mount "$@"

(Предупреждение: непроверенный код.)

Этот фрагмент разбирает файл ~/.fstab с синтаксисом, напоминающим /etc/fstab: "device", точка монтирования, тип файловой системы, опции. Обратите внимание, что здесь тип файловой системы - это команда для выполнения, а "устройство" зависит от файловой системы. Не все команды файловой системы FUSE используют этот синтаксис с "устройством", за которым следует точка монтирования, хотя это общее соглашение.

Опции SSH, такие как идентификационный файл, имя удаленного пользователя и т.д., могут находиться в ~/.ssh/config . Единственная причина, по которой их можно поместить в /etc/fstab - это позволить использовать эти опции всем пользователям.

0
27.01.2020, 21:42

Теги

Похожие вопросы