LINUX.ORG.RU
ФорумAdmin

Вопрос по использованию fuse + fstab

 , , ,


0

1

Всем привет. Буду краток. Дело происходит в Raspbian. Задача - дать моему пользователю право монтировать раздел exFAT съемного диска без sudo. Тривиально, но…

whoami

dmitry

id dmitry

uid=1001(dmitry) gid=1001(dmitry) группы=1001(dmitry),4(adm),6(disk),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),109(netdev),1000(pi),999(spi),998(i2c),997(gpio)

ls -ld /media/BIG/

drwxr-x— 2 dmitry users 4096 дек 25 03:03 /media/BIG/

ls -l /dev/sdb1

brw-rw—- 1 root disk 8, 17 дек 25 09:31 /dev/sdb1

cat /etc/fstab | grep /media/BIG

UUID=5DF6-2FE7 /media/BIG exfat rw,auto,nofail,user,umask=027,uid=1001,gid=100

ls -l /bin/fusermount

-rwsr-xr-x 1 root root 26072 янв 7 2019 /bin/fusermount

ls -l /sbin/mount.fuse

-rwxr-xr-x 1 root root 9684 янв 7 2019 /sbin/mount.fuse

Пробовал делать chmod +s /sbin/mount.fuse - безрезультатно.

mount /media/BIG

FUSE exfat 1.3.0 ERROR: failed to open ‘/dev/sdb1’: Permission denied.

При этом sudo mount /media/BIG работает.

Подскажите, пожалуйста, где не хватает прав или в чем моя ошибка? Я голову сломал уже, честно говоря.

Думаю, что дело точно во fuse, т.к. с правами, на мой взгляд, все нормально и вот такая строка из /etc/fstab прекрасно работает (т.е. пользователь dmitry монтирует без sudo файловую систему): UUID=bfb5f4e7-f031-4a8a-99ac-9398e05e8170 /media/storage ext4 rw,user,auto,nofail,exec,noatime

Права на директорию storage и устройство в /dev/ при этом абсолютно такие же, что и в проблемном случае.

UUID=5DF6-2FE7 /media/BIG exfat rw,auto,nofail,user,umask=027,uid=1001,gid=100

$ man mount.fuse

       allow_other
              This  option overrides the security measure restricting file access to the user mounting the filesystem.  So all users (including root) can access the files.  This option is by default only allowed to root, but  this  restriction  can  be  removed  with  a configuration option described in the previous section.
anonymous ()
Ответ на: комментарий от anonymous

Попробовал. Не помогает.

cat /etc/fstab | grep /media/BIG

UUID=5DF6-2FE7 /media/BIG exfat rw,auto,nofail,user,allow_other,umask=027,uid=1001,gid=100

mount /media/BIG

FUSE exfat 1.3.0 ERROR: failed to open ‘/dev/sdb1’: Permission denied.

И, как я понимаю, эта опция про другое вообще - про доступ других юзеров к УЖЕ СМОНТИРОВАННОЙ файловой системе.

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

Я уж было обрадовался (не приходила такая мысль в голову), но:

fusermount /media/BIG

fusermount: old style mounting not supported

А просто mount вызывает mount.fuse (которому, напомню, пробовал даже +s сделать)… mount.fuse руками пробовал, говорит /bin/sh: 1: /dev/sdb1: Permission denied

Напомню, у моего пользователя rw доступ к /dev/sdb1, т.к. он в группе disk.

ls -l /dev/sdb1

brw-rw—- 1 root disk 8, 17 дек 25 09:31 /dev/sdb1

Это что ж выходит, надо chmod o+rw чтобы это говно работало? Я попробовал, оно работает, конечно, НО: 1. неправильно так делать, 2. мне нужно монтировать по UUID в fstab, т.к. в следующий раз устройство в /dev может быть совсем другим….

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

Точка монтирования присутствует в системе. auto - на случай, если диск будет подключен в момент запуска компа. Не надо его убирать из fstab.

Но я попробовал и эту версию:

cat /etc/fstab | grep exfat

UUID=5DF6-2FE7 /media/BIG exfat rw,user,umask=027,uid=1001,gid=100

mount /media/BIG

FUSE exfat 1.3.0 ERROR: failed to open ‘/dev/sdb1’: Permission denied.

Короче, есть ощущение, что процессу, который запускает mount (по идее это mount.fuse) не хватает прав на устройство /dev/sdb1. Права менять не хочу, конечно, да и неправильно это. chmod +s /sbin/mount.fuse не помог. Я в растерянности…

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

chmod +s /sbin/mount.fuse не помог.

$ stat /sbin/mount.fuse
  Файл: «/sbin/mount.fuse»
  Размер: 9616      	Блоков: 24         Блок В/В: 4096   обычный файл
Устройство: fe00h/65024d	Inode: 23270       Ссылки: 1
Доступ: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

$ stat /sbin/mount.exfat
  Файл: «/sbin/mount.exfat» -> «mount.exfat-fuse»
  Размер: 16        	Блоков: 0          Блок В/В: 4096   символьная ссылка
Устройство: fe00h/65024d	Inode: 195386      Ссылки: 1
Доступ: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)

$ stat /sbin/mount.exfat-fuse
  Файл: «/sbin/mount.exfat-fuse»
  Размер: 50700     	Блоков: 104        Блок В/В: 4096   обычный файл
Устройство: fe00h/65024d	Inode: 195383      Ссылки: 1
Доступ: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
anonymous ()
Ответ на: комментарий от anonymous

Дружище, ОГРОМНОЕ спасибо тебе за наводку!

Помогло:

sudo chmod +s /sbin/mount.exfat-fuse

Вот где собака-то порылась. Я догадывался, что проблема в правах у fuse, но не посмотрел, что вот этот конкретно бинарник выполняет операцию. Думал, что mount.fuse. Короч, думал в правильном направлении, но не додумал.

Еще раз большое спасибо за подсказку!

paddlewan ()