Подключите 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-ящик:
Запустите приведенную ниже команду
ntfsfix /dev/storagedevice ( like sdb1 or sdc1 )
Перезагрузите Linux
Подключите внешнее хранилище, выполнив команду:
mount -o rw /dev/storagedevice /media/
или же
mount -o rw /dev/storagedevice /mnt/
или подключите устройство хранения через графический интерфейс.