Это старая версия документа.


Монтирование

Способы монтирования

Варианты монтирования по степени детализации:

  • Высокоуровневое:
# high level ecryptfs mount
LOGIN="user"
sudo -iu "$LOGIN"
ecryptfs-mount-private
  • Среднего уровня:
# middle level ecryptfs mount
LOGIN="user"
sudo -iu "$LOGIN"
WRAPPED_PASSPHRASE_FILE="/home/$USER/.ecryptfs/wrapped-passphrase"
PASSPHRASE="password"
echo "$PASSPHRASE" | ecryptfs-insert-wrapped-passphrase-into-keyring "$WRAPPED_PASSPHRASE_FILE"
mount.ecryptfs_private
  • Низкоуровневое:
# low level ecryptfs mount
sudo -i
LOGIN="user"
WRAPPED_PASSPHRASE_FILE="/home/$LOGIN/.ecryptfs/wrapped-passphrase"
ecryptfs-unwrap-passphrase "$WRAPPED_PASSPHRASE_FILE"
PASSPHRASE="password"
printf "%s" "$PASSPHRASE" | ecryptfs-add-passphrase --fnek -
MOUNT_PASSPHRASE_SIG_FILE="/home/.ecryptfs/$LOGIN/.ecryptfs/Private.sig"
ECRYPTFS_SIG="$(sed -n 1p $MOUNT_PASSPHRASE_SIG_FILE)"
ECRYPTFS_FNEK_SIG="$(sed -n 2p $MOUNT_PASSPHRASE_SIG_FILE)"
mount.ecryptfs "/home/.ecryptfs/$LOGIN/.Private" "/mnt" \
    -o ecryptfs_passthrough=n,\
    ecryptfs_cipher=aes,\
    ecryptfs_key_bytes=16,\
    ecryptfs_enable_filename_crypto=y,\
    ecryptfs_sig="$ECRYPTFS_SIG",\
    ecryptfs_fnek_sig="$ECRYPTFS_FNEK_SIG",\
    passphrase_passwd="$PASSPHRASE"

Пример монтирования

# Получаем права суперпользователя
arcfi@arcfi-laptop:~$ sudo -i
[sudo] password for arcfi:
# Запоминаем логин пользователя, домашний каталог которого будем пытаться монтировать
root@arcfi-laptop:~# LOGIN="arcfi"
# Запоминаем путь к файлу с парольной фразой
root@arcfi-laptop:~# WRAPPED_PASSPHRASE_FILE="/home/$LOGIN/.ecryptfs/wrapped-passphrase"
# Расшифровываем фразу, используя пароль пользователя
root@arcfi-laptop:~# ecryptfs-unwrap-passphrase $WRAPPED_PASSPHRASE_FILE
Passphrase:
68b329da9893e34099c7d8ad5cb9c940
# Запоминаем полученную парольную фразу
root@arcfi-laptop:~# PASSPHRASE="68b329da9893e34099c7d8ad5cb9c940"
# Добавляем необходимые ключи на связку ключей
root@arcfi-laptop:~# printf "%s" "$PASSPHRASE" | ecryptfs-add-passphrase --fnek -
Inserted auth tok with sig [8cf8463b34caa8ac] into the user session keyring
Inserted auth tok with sig [871a52d5dd7ad1ef] into the user session keyring
# Запоминаем путь до файла с ключами
root@arcfi-laptop:~# MOUNT_PASSPHRASE_SIG_FILE="/home/.ecryptfs/$LOGIN/.ecryptfs/Private.sig"
# Извлекаем из файла имена ключей
# Следует обратить внимание, что эти имена должны соответствовать
# полученным ранее в результате команды ecryptfs-add-passphrase
# Проверить это можно будет командой "echo $ECRYPTFS_SIG $ECRYPTFS_FNEK_SIG"
root@arcfi-laptop:~# ECRYPTFS_SIG="$(sed -n 1p $MOUNT_PASSPHRASE_SIG_FILE)"
root@arcfi-laptop:~# ECRYPTFS_FNEK_SIG="$(sed -n 2p $MOUNT_PASSPHRASE_SIG_FILE)"
# Убеждаемся, что каталог /mnt доступен
root@arcfi-laptop:~# ls /mnt/
# Монтируем зашифрованный каталог пользователя
root@arcfi-laptop:~# mount.ecryptfs /home/.ecryptfs/$LOGIN/.Private /mnt \
> -o ecryptfs_passthrough=n,\
> ecryptfs_cipher=aes,\
> ecryptfs_key_bytes=16,\
> ecryptfs_enable_filename_crypto=y,\
> ecryptfs_sig=$ECRYPTFS_SIG,\
> ecryptfs_fnek_sig=$ECRYPTFS_FNEK_SIG,\
> passphrase_passwd=$PASSPHRASE
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=871a52d5dd7ad1ef
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=8cf8463b34caa8ac
Mounted eCryptfs
# Проверяем корректность монтирования
root@arcfi-laptop:~# ls /mnt/
Dropbox  examples.desktop  PDF  Видео  Документы  Загрузки  Картинки  Музыка  Общедоступные  Рабочий стол  Шаблоны
# Демонтируем
root@arcfi-laptop:~# umount /mnt/
# Проверяем корректность демонтирования
root@arcfi-laptop:~# ls /mnt/
# Завершаем сеанс суперпользователя
root@arcfi-laptop:~# logout
arcfi@arcfi-laptop:~$

Удалённое открытие/закрытие

# ecryptfs@ssh open
ecryptfs_open(){
    gvfs-mount "sftp://$SSH_USER@$SSH_HOST:$SSH_PORT"
 
    ssh "$SSH_USER@$SSH_HOST" -p "$SSH_PORT" -i "$SSH_KEY" \
        "echo \"$ECR_PASS\" | ecryptfs-insert-wrapped-passphrase-into-keyring ; mount.ecryptfs_private"
}
 
# ecryptfs@ssh close
ecryptfs_close(){
    ssh "$SSH_USER@$SSH_HOST" -p "$SSH_PORT" -i "$SSH_KEY" \
        "ecryptfs-umount-private"
 
    gvfs-mount -u "sftp://$SSH_USER@$SSH_HOST:$SSH_PORT"
}