15

Мне нужно разрешить пользователю без полномочий root монтировать / размонтировать устройство. Я абсолютный нуб, когда дело доходит до UNIX, поэтому, пожалуйста, сделайте это для меня.

Я искал во всем Интернете, чтобы найти ответ, и кажется, что все дают один и тот же ответ, который заключается в том, чтобы изменить /etc/fstab чтобы включить это устройство с опцией user (или users , попробовавшие оба). Я сделал это, и он по-прежнему говорит mount: only root can do that .

Вот содержимое моего fstab:

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#                
proc            /proc           proc    defaults        0       0
# / was on /dev/mapper/minicc-root during installation
UUID=1a69f02a-a049-4411-8c57-ff4ebd8bb933 /               ext3    relatime,errors=remount-ro 0       1
# /boot was on /dev/sda5 during installation
UUID=038498fe-1267-44c4-8788-e1354d71faf5 /boot           ext2    relatime        0       2
# swap was on /dev/mapper/minicc-swap_1 during installation
UUID=0bb583aa-84a8-43ef-98c4-c6cb25d20715 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0
/dev/scd0       /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
/dev/sdb1   /mnt/sdcard auto    auto,user,rw,exec   0   0

Мой раздел флешки отображается как /dev/sdb1 . Я почти уверен, что мой fstab настроен нормально, но все остальные посты, похоже, не упоминают, как они на самом деле вызывают команду mount когда эта запись находится в файле fstab. Я думаю, что это где моя проблема. Команда, которую я использую для монтирования диска:

$ mount /dev/sdb1 /mnt/sdcard

/bin/mount принадлежит root и находится в корневой группе и имеет 4755 разрешений.
/bin/umount принадлежит root и находится в корневой группе и имеет 4755 разрешений.
/mnt/sdcard принадлежит мне и входит в одну из моих групп и имеет 0755 разрешений.

Моя команда монтирования работает нормально, если я использую sudo , но мне нужно иметь возможность делать это без sudo (нужно уметь делать это из сценария PHP с использованием shell_exec). Какие-либо предложения?

3 ответа3

17

При монтировании тома как обычного пользователя вам нужно только указать имя точки монтирования, то есть:

mount /mnt/sdcard

Файл /etc/fstab предоставляет устройство, которое будет использоваться.

7

Попробуйте сменить владельца /dev/sdb1 на root:

chown root:root /dev/sdb1

и ваша линия fstab

/dev/sdb1   /mnt/sdcard auto    rw,user,noauto,exec,utf8   0   0

И сделай свое mount так:

mount /dev/sdb1
-1

Я думаю, что авто вариант делает беспорядок. Замените это с помощью noauto.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .