Подключите USB-накопитель с разрешениями на запись для всех или конкретного пользователя

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

Я имею:

  • HDD разделен на два раздела. /dev/sdb1 а также /dev/sdb2, sdb1 это NTFS и мне это не нужно. я нуждаюсь sdb2 который fat32.
  • Ubuntu 12.04.1 LTS (сервер)

Я хочу:

В конечном итоге мне нужна перма-маунт /dev/sdb2 в /home/storage с правом доступа (rw) для пользователя media,

Проблемы, с которыми я сталкиваюсь:

1) Использование ручного монтирования из командной строки.

Если я просто использую

server# sudo mount /dev/sdb2 /home/storage

Это монтирует но /home/storage получает root как владелец и группу и не позволяет media Пользователь, чтобы написать там.

Если я использую mount команда без sudo как пользователь media - Я не имею права. Говорит, что только root может использовать mount.

Если я использую mount с вариантами: server# sudo mount /dev/sdb2 /home/storage -o umask=000 Я получаю то, что мне нужно. Конечно, немного перестарались, поскольку папка хранилища становится доступной для записи всем. НО - это монтируется вручную - теперь мне нужно перемонтировать его при каждой перезагрузке.

2) Перемонтирование при перезагрузке - использованиеfstab

Поэтому я думал, что все будет хорошо, если я буду использовать fstab смонтировать этот раздел (/dev/sdb2) каждый раз, когда я перезагружаюсь. fstab Строка, которую я добавил:

UUID=8C52-C1CD /home/storage auto user,umask=000,utf8,noauto 0 0

получил с blkid, Тип фс auto я несколько раз менял... пытался vfat тоже, но всегда при перезагрузке убунту останавливается при обработке fstab (как мне кажется) с сообщением (взято из журнала):

fsck from util-linux 2.20.1 /dev/sda5: clean, 120559/10969088 files, 19960144/43861504 blocks mount: unknown filesystem type 'static' mountall: mount /etc/fstab: [772] terminated with status 32 mountall: Filesystem could not be mounted: /etc/fstab: Skipping /etc/fstab: at user request

А также - sudo mount -a никогда ничего не делает.

Что я делаю неправильно? Я подозреваю, что я что-то напутал:)

ОБНОВИТЬ:

Как кажется - fstab должен содержать только монтируемые для статических дисков, а не какие-либо usb -файлы. Я озадачен тем, как это работает, когда все люди публикуют в сети свои истории успеха...

однако.. если это невозможно - я хотел бы знать, как перемонтировать мой usb после каждой перезагрузки... если не с fstab - чем как?:)

5 ответов

Решение

Кажется, ваша проблема связана с установленными вами разрешениями. Диски в формате FAT / FAT32 не поддерживают права доступа к файлам. Разрешения для всего определяются тем, как смонтирован диск. Когда вы устанавливаете разрешение на открытие, оно работает, когда вы

server# sudo mount /dev/sdb2 /home/storage -o umask=000

Что касается не автоматического монтажа при перезагрузке

UUID=8C52-C1CD /home/storage auto user,umask=000,utf8, -->noauto<-- 0 0

"Noauto" делает это НЕ автоматически монтируемым при запуске системы и анализирует файл / etc / fstab. Удалите эту опцию, и она будет монтироваться при запуске. Вы можете установить разрешения для точки монтирования, когда она смонтирована с chmod или укажите их в / etc / fstab.

Если вам нужен мультимедийный пользователь для доступа к нему, вы можете установить разрешения 764 и добавить их в группу безопасности. Root всегда имеет доступ ко всему.

см. http://www.linux.org/threads/file-permissions-chmod.4094/ где приведены некоторые примеры разрешений на доступ к файлам.

С другой стороны, bodhi.zazen сделал хорошую мысль. Есть ли какая-то причина, по которой вам нужно использовать FAT? Если нет, я бы сделал резервную копию данных и использовал собственную файловую систему Linux. Затем вы можете установить владельца и разрешения.

Вы также можете запустить

sudo chmod 0777 /home/storage

Поскольку диски FAT не имеют разрешений, linux применяет разрешение точки монтирования ко всему диску.

Если они не переопределены параметрами монтирования, GID= или UID= владелец и разрешения точки монтирования при монтировании становятся разрешениями монтируемого дерева файловой системы.

Таким образом, если / dev / sdb1 содержит файловую систему ext4 (скажем, резервную копию), принадлежащую пользователю, то пользователь станет владельцем точки монтирования после успешного монтирования.

Начнем с того, что у нас есть пустая папка 'backup', которая будет служить точкой монтирования и принадлежит root.

# ls -alR /mnt
/mnt/:
drwxr-x---  5 root root 4096 May 30 20:59 ./
drwxr-xr-x  3 root root 4096 Dec  5  2015 ../
drwx------  2 root root 4096 Jan  1 07:45 backup/

/mnt/backup:
drwx------  2 root root 4096 Jan  1 07:45 .
drwxr-x---  5 root root 4096 May 30 20:59 ..

Теперь мы монтируем /dev/sdb1 (только для чтения)

# mount -o ro /dev/sdb1 /mnt/backup

и давайте посмотрим...

# ls -alR
/mnt/:
drwxr-x---  5 root root 4096 May 30 20:59 ./
drwxr-xr-x  3 root root 4096 Dec  5  2015 ../
drwx------  2 user user 4096 Jan  1 07:45 backup/

/mnt/backup:
drwx------  2 user user 4096 Jan  1 07:45 .
drwxr-x---  5 root root 4096 May 30 20:59 ..
-rw-------  1 user user 252076021760 Jun  9 21:11 backup.tar

Теперь, если у вас есть пустой диск, и вы хотите смонтировать его для "пользователя" в качестве расширения "дискового пространства пользователя", смонтируйте диск как "root", поместите корень монтирования в "user" и размонтируйте.

В следующий раз, когда файловая система будет смонтирована (пользователем root или кем-либо еще в соответствии с fstab), владельцем монтирования будет "пользователь".

Без монтирования в /home/storage (очень быстро):

      $ pcmanfm  
$ df -h  
... /dev/sdb2 ...  
$ chown -hR user:group /media/user/a13*  

Если у вас есть внешнее устройство хранения данных, подключенное к вашей Linux-системе с NTFS, убедитесь, что файловая система чистая.

Перед тем как смонтировать хранилище на свой Linux-ящик:

  1. Запустите приведенную ниже команду

    ntfsfix /dev/storagedevice ( like sdb1 or sdc1 )  
    
  2. Перезагрузите Linux

  3. Подключите внешнее хранилище, выполнив команду:

    mount -o rw /dev/storagedevice /media/ 
    

    или же

    mount -o rw /dev/storagedevice /mnt/ 
    

    или подключите устройство хранения через графический интерфейс.

Другие вопросы по тегам