UNIX - mount: это может сделать только root

20619
Travesty3

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

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

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

# / etc / fstab: статическая информация о файловой системе. # # Используйте 'vol_id --uuid', чтобы напечатать универсально уникальный идентификатор для # устройство; это может использоваться с UUID = как более надежный способ именования устройств # это работает, даже если диски добавлены и удалены. Смотрите fstab (5). # #  proc / proc proc по умолчанию 0 0 # / был включен / dev / mapper / minicc-root во время установки UUID = 1a69f02a-a049-4411-8c57-ff4ebd8bb933 / ext3 relaytime, ошибки = remount-ro 0 1 # / boot был включен / dev / sda5 во время установки UUID = 038498fe-1267-44c4-8788-e1354d71faf5 / boot ext2 relaytime 0 2 # swap был включен / dev / mapper / minicc-swap_1 во время установки UUID = 0bb583aa-84a8-43ef-98c4-c6cb25d20715 нет своп sw 0 0 / dev / scd0 / media / cdrom0 udf, пользователь iso9660, noauto, exec, utf8 0 0 / dev / scd0 / media / floppy0 auto rw, пользователь, noauto, exec, utf8 0 0 / dev / sdb1 / mnt / sdcard auto auto, пользователь, 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). Какие-либо предложения?

15
Пожалуйста, не используйте выражения типа "teh interwebz", это просто отвлекает. Georg Schölly 14 лет назад 1
Я скорее предпочел бы видеть, что «межпоэзы» вводят с юмором и индивидуальностью, чем видеть, как кто-то использует «ты», «ур», «любой1» и тому подобное из-за лени и невежества. Я хочу сказать, что есть разница, и она очевидна в зависимости от контекста. Dennis Williamson 14 лет назад 9

3 ответа на вопрос

17
Kevin Panko

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

mount /mnt/sdcard 

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

Или вы можете смонтировать устройство и `fstab` предоставит точку монтирования. Dennis Williamson 14 лет назад 2
АГА! Я подумал, что это будет что-то не так с моим командным синтаксисом. Очень рад, что это было что-то простое. Спасибо!!! Награждение ответом на этот пост, так как это было самое прямое и описательное решение МОЕЙ проблемы, хотя ответ Денниса также предполагал это и также решил бы проблему. Travesty3 14 лет назад 0
7
Dennis Williamson

Попробуйте сменить владельца /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 
Спасибо за ответ! Ваше решение также решило бы проблему, и, надеюсь, другим читателям этого поста помогут и другие ваши предложения. Еще раз спасибо! Travesty3 14 лет назад 0
-1
gogiel

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

обратите внимание, что это «auto» в «auto, user, rw, exec», а не в отдельном «auto». автономный «auto» предназначен для определения используемой файловой системы и должен быть в порядке. quack quixote 14 лет назад 0
Нет, та же проблема. изменил это, чтобы сказать / dev / sdb1 / mnt / sdcard auto noauto, пользователь, rw, exec 0 0. не уверен, было ли это необходимо или нет, но так как это сервер разработки, и я могу, я перезагрузил компьютер после изменения файл fstab, безрезультатно. Спасибо за предложение, продолжайте в том же духе! Travesty3 14 лет назад 0