LINUX.ORG.RU

Поднять ecryptfs over sshfs из под обычного пользователя

 ,


0

2

Собственно, сабж вынесен в тему.

Итак, есть удаленный сервер, там, ясно дело, есть root и есть обычный пользователь, допустим, ivan. Ну, авторизация по ключам настроена, ssh без проблем соединяет, все хорошо.

Выполняю на клиентской машине из-под обычного пользователя:

mkdir /home/durak/.fardir
mkdir /home/durak/workdir
sshfs ivan@1.2.3.4:/home/ivan/data /home/durak/.fardir

Эта часть кода идет идеально, в итоге в .fardir монтируется удаленная папка data. Вопросов нет.

А вот дальше засада. При попытке выполнить

mount -t ecryptfs /home/durak/.fardir /home/durak/workdir
получаю ошибку, что обычный пользователь не может монтировать с опциями, что ожидаемо.

А если монтирую от root то все монтируется, но обычный пользователь не может работать с workdir - даже когда меняю на нее права и владельца на этого самого пользователя. А это очень неудобно постоянно лазить туда залезая под root.

Подскажите, можно реализовать нужную мне архитектуру без привлечения fstab (строго - система Live) и, желательно, без привлечения механизма sudo (есть причины).

без привлечения fstab (строго - система Live)

А в самом LiveDVD изменить fstab?

anonymous
()
Ответ на: комментарий от anonymous

Тогда в fstab, который зашит в live будут следы подключения по ecryptfs и sshfs

dima9kin
() автор топика

Не знаю что такое ecryptfs, но монтирование само по себе это рутовая операция. Делать без рута местами можно, но это всё специально организованные исключения, часто с ограничениями.

Ситуация «работает от одного юзера, не работает от другого» очень известна для fuse - там по дефолту доступ к смонтированной фс есть только у того, кто её монтировал, а чтобы был у всех - есть опция allow_others.

Не знаю что такое ecryptfs, но возможно в неё тоже что-то такое.

firkax ★★★★★
()

В общем, добавил возможность mount для sudo - теперь на монтирование с параметрами от обычного пользователя не монтируется - однако в конце диалога с ecryptfs все равно падает с ошибкой Permission Denied

И я ни фига не понимаю, каких именно прав и на что ему не хватает…

dima9kin
() автор топика
Ответ на: комментарий от anonymous

Уточню: эта опция есть и в sshfs и в ecryptfs? И ставлю ее при монтировании обоих систем, так?

dima9kin
() автор топика
Ответ на: комментарий от anonymous

Черт, Вы волшебник!!! Работает!!! Все работает от обычного пользователя!!!

Мне для общего понимания: а разве опция allow_other делает не то же самое, что и опция users команды mount? Или я совсем все неправильно понимаю? Просто не хочу тупо набивать буковки, хочу понять почему так работает, а иначе - нет…

dima9kin
() автор топика
Ответ на: комментарий от anonymous

Это умножает на ноль все средства обеспечения безопасности. Непонятно тогда, зачем вообще ssh и ecryptfs.

i586 ★★★★★
()
Ответ на: комментарий от dima9kin

fuse файловые системы по умолчанию монтируются так, что доступ имеет только тот пользователь, который монтировал, а другие пользователи (даже root) не могут даже зайти в эту папку.

anonymous
()
Ответ на: комментарий от anonymous

Ага, то есть монтируя sshfs (она же fuse, как я понял) с опциями по умолчанию - мы даем право входить туда только локальному пользователю клиентской машины (от имени которого выполняется команда sshfs), верно?

А опция allow_other позволяет использовать эту директорию любым пользователям, так?

dima9kin
() автор топика
Ответ на: комментарий от i586

Непонятно тогда, зачем вообще ssh и ecryptfs

Это как раз понятно, очевидно, чтобы хранить данные на удалённом сервере в зашифрованном виде. А вот каким образом доступ локальных пользователей это будет компрометировать - вопрос.

anonymous
()
Ответ на: комментарий от anonymous

А что тогда дает опция users команды mount? Просто в мануалах пишут, что она позволяет монтировать ФС тоже любому пользователю. В чем отличие опций users и allow_other?

Простите, что надоедаю, просто хочу разобраться. Запутался.

dima9kin
() автор топика
Ответ на: комментарий от dima9kin

она позволяет монтировать ФС тоже любому пользователю

Именно так. Вообще файловые системы может монтировать только root. И чтобы разрешить обычному пользователю монтировать/размонтировать ФС, указывается users (или user).
С fuse это не нужно, они и так могут монтироваться пользователем. (на самом деле в итоге всё равно всё монтирует рут бинарником с suid, но здесь речь не об этом)

allow_other это опция для fuse, чтобы после монтирования другие пользователи могли заходить на примонтированную ФС

anonymous
()
Ответ на: комментарий от anonymous

Ага! То есть опция users дает право [b]монтировать[/b], а allow_others [b]заходить[/b]. В этом разница. Очень доходчиво. Огромное спасибо!

dima9kin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.