Автор Тема: Проблема с encfs. помогите разобраться  (Прочитано 1805 раз)

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 566
Хочу создать шифрованную папку с помощью encfs - ругается что отказано в доступе. Из под sudo - работает.
Как заставить работать из под обычного пользователя?
(SimplyLinux)
Вот лог работы от обычного пользователя (сначала) и из под sudo (ниже) :

$ encfs -v -d ~/.work ~/work
Директория "/home/alx/.work/" не существует. Создать ее? (y,n) y
Директория "/home/alx/work" не существует. Создать ее? (y,n) y
20:36:28 (main.cpp:523) Root directory: /home/alx/.work/
20:36:28 (main.cpp:524) Fuse arguments: (daemon) (threaded) (keyCheck) encfs /home/alx/work -d -s -o use_ino -o default_permissions
Создание нового зашифрованого раздела.
Выберите одну из следующих букв:
 введите "x" для режима эксперта,
 введите "p" для режима максимальной секретности,
 любой другая буква для выбора стандартного режима.
?> p

Выбрана конфигурация с максимальной секретностью.
20:36:38 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 32, ivlength 16
20:36:38 (FileUtils.cpp:1123) Using cipher AES, key size 256, block size 1024

Конфигурация завершена. Создана файловая система
с следующими свойствами:
20:36:38 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:2)
20:36:38 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 24, ivlength 16
Шифр файловой системы: "ssl/aes", версия 3:0:2
20:36:38 (Interface.cpp:165) checking if nameio/block(3:0:1) implements nameio/block(3:0:1)
Шифр файла: "nameio/block", версия 3:0:1
20:36:38 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:2)
20:36:38 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 32, ivlength 16
Размер ключа: 256 бит
Размер блока: 1024 байт, включая 8 байт MAC заголовок
Каждый файл содержит 8-ми байтный заголовок с уникальными IV данными.
Файловые имена зашифрованя с использованием IV цепочек.
Данные файла IV связаны с именем файла IV.
File holes passed through to ciphertext.

----------------------- ПРЕДУПРЕЖДЕНИЕ -----------------------

Опция наружной инициализации векторного связывания включена.
Эта опция запрещает использовать жесткие ссылки на файловой системе.
Без жестких ссылок некоторые программы не будут работать.
Не будут работать такие программы как 'mutt' и 'procmail'.
Для более подробной информации читайте списки рассылки encfs.
Если вы желаете выбрать другие настройки
конфигурации то нажмите CTRL-C и начните все заново.

Введите пароль для доступа к файловой системе.
Запомните пароль, так как в случае утери его,
будетневозможно востановить данные. Тем не менее
этот пароль можно изменить с помощью утилиты encfsctl.

20:36:38 (openssl.cpp:48) Allocating 41 locks for OpenSSL
20:36:38 (FileUtils.cpp:1180) useStdin: 0
Новый пароль EncFS:
Повторите пароль EncFS:
20:37:14 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:2)
20:37:14 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 32, ivlength 16
20:37:17 (Interface.cpp:165) checking if nameio/block(3:0:1) implements nameio/block(3:0:1)
fuse: failed to open /dev/fuse: Отказано в доступе
ошибка fuse. Возможные проблемы:
 - модуль ядра fuse не установлен (modprobe fuse)
 - не правильные опции -- cм. справку по использованию
$ sudo encfs -v -d ~/.work ~/work
[sudo] password for alx:
20:37:48 (main.cpp:523) Root directory: /home/alx/.work/
20:37:48 (main.cpp:524) Fuse arguments: (daemon) (threaded) (keyCheck) encfs /home/alx/work -d -s -o use_ino -o default_permissions
20:37:48 (FileUtils.cpp:177) version = 20
20:37:48 (FileUtils.cpp:181) found new serialization format
20:37:48 (FileUtils.cpp:199) subVersion = 20100713
20:37:48 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0)
20:37:48 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 32, ivlength 16
20:37:48 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0)
20:37:48 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 32, ivlength 16
20:37:48 (FileUtils.cpp:1620) useStdin: 0
Пароль EncFS:
20:37:56 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0)
20:37:56 (SSL_Cipher.cpp:370) allocated cipher ssl/aes, keySize 32, ivlength 16
20:37:59 (FileUtils.cpp:1628) cipher key size = 52
20:37:59 (Interface.cpp:165) checking if nameio/block(3:0:1) implements nameio/block(3:0:0)
FUSE library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 1, success, outsize: 40

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Если я не ошибаюсь, то:
Смотрим control
$ su - -c control | grep fuse
Password:
fusermount      fuseonly        (public fuseonly wheelonly restricted)
И правда с fuse может работать только пользователь, входящий в группу fuse

$ ls -l   /dev/fuse
crw-rw---- 1 root fuse 10, 229 фев 14 20:23 /dev/fuse

Варианты решения:

1-й способ:
 Сменить политику fusermount   
Для всех:
# control public
или дл всех, кто входит в группу wheel (а первый созданный пользователь в неё входит):
2-й способ:
 Ввести пользователя в группу fuse
gpasswd --add ваш_пользователь fuse

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 566
как выяснилось есть еще третий способ - не знаю правильный или нет...
sudo chmod +x /usr/bin/fusermount
Я как раз собрался отписать что он у меня сработал.
Но Ваш "способ №2" мне нравится больше.

После всех экспериментов у меня вот так:
$ su - -c control | grep fuse
Password:
fusermount      unknown         (public fuseonly wheelonly restricted)
$ ls -l   /dev/fuse
crwxrwxrwx 1 root fuse 10, 229 фев 14 21:24 /dev/fuse

« Последнее редактирование: 14.02.2015 21:46:12 от ASte »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
$ su - -c control | grep fuse
Password:
fusermount      unknown         (public fuseonly wheelonly restricted)
Верните в какое-нибудь "штатное" состочние, например:
su - -c control  fusermount fuseonly
« Последнее редактирование: 15.02.2015 09:09:05 от ruslandh »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
$ ls -l   /dev/fuse
crwxrwxrwx 1 root fuse 10, 229 фев 14 21:24 /dev/fuse
это вы точно руками сделали, теперь любой может использовать fusermount

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
как выяснилось есть еще третий способ - не знаю правильный или нет...
sudo chmod +x /usr/bin/fusermount
нет, такой способ неправильный.

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 566
нет, такой способ неправильный.
как много в интернете неправильных советов :-)
после такого перестешь верить в гугл :-)
так не работает:
$su - -c control   fuseonly
control: No such facility: fuseonly
видимо нужно так:
$su - -c control   fusermount fuseonly
$


 
« Последнее редактирование: 15.02.2015 08:26:20 от ASte »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
$su - -c control   fuseonly
control: No such facility: fuseonly
видимо нужно так:
$su - -c control   fusermount fuseonly
$
Ну да. описка.