Операции с SD-картой из нескольких учетных записей?
Я использую Ubuntu MATE 16.04, и копирование изображений в и из моего внутреннего устройства чтения карт SD в основном работает нормально… на моем основном аккаунте.
Если другой член семьи входит в систему (моя учетная запись все еще активна в фоновом режиме, но не вышла из системы), а затем вставляет SD-карту, он не может получить к ней доступ:
Итак, это какая-то проблема с правами...? Войдя в систему как основной пользователь, я также вижу некоторые проблемы с правами:
Итак, что бы это ни было, как я могу ослабить права доступа к устройству чтения SD-карт, чтобы он стал доступен для всех (включая пользователей без прав администратора)?
Возможно, некоторые "расслаблены" etc/fstab
запись? (нет связанной записи там еще)
Обновление I:
Переключение между двумя SD-картами (от одного пользователя) и просмотр /dev/disk/by-id
:
?> ~ $ ll /dev/disk/by-id | grep mmc
... mmc-SDU1_0x02400f04 -> ../../mmcblk0
... mmc-SDU1_0x02400f04-part1 -> ../../mmcblk0p1
?> ~ $ ll /dev/disk/by-id | grep mmc
... mmc-SE32G_0x0072e5ab -> ../../mmcblk0
... mmc-SE32G_0x0072e5ab-part1 -> ../../mmcblk0p1
?> ~ $ ll /dev/disk/by-id | grep mmc
... mmc-SDU1_0x02400f04 -> ../../mmcblk0
... mmc-SDU1_0x02400f04-part1 -> ../../mmcbl
?> ~ $ ll /dev/disk/by-id | grep mmc
... mmc-SDU1_0x02400f04 -> ../../mmcblk0
... mmc-SDU1_0x02400f04-part1 -> ../../mmcblk0p1
?> ~ $ ll /dev/disk/by-id | grep mmc
... mmc-SE32G_0x0072e5ab -> ../../mmcblk0
... mmc-SE32G_0x0072e5ab-part1 -> ../../mmcblk0p1
?> ~ $ ll /dev/disk/by-id | grep mmc
... mmc-SDU1_0x02400f04 -> ../../mmcblk0
... mmc-SDU1_0x02400f04-part1 -> ../../mmcblk0p1
../../mmcblk0[p1]
⇒ /dev/mmcblk0[p1]
кажется, единственная константа здесь. Возможно, я смогу найти решение с этим?
Я добавил это к /etc/fstab
(согласно man-странице, первый параметр также может быть путем к устройству, если я правильно понимаю):
/dev/mmcblk0p1 /media/ExtSD01/ auto auto,user,rw 0 0
Это сработало довольно хорошо, теперь, когда я могу mount /dev/mmcblk0p1/
и размонтируется на независимый от пользователя путь, но не автоматически, а по крайней мере из командной строки (недостаток 1). Однако моя система зависает при перезагрузке - если у меня не вставлена SD-карта перед загрузкой (недостаток 2). Поэтому я снова удалил эту строку...
Может быть, есть другое место для редактирования параметров монтирования в Ubuntu Mate? system.d? В другом месте?
4 ответа
Чтобы подключить SD-карту при запуске для всех пользователей, нам нужна запись в fstab
файл. В настоящее время происходит то, что SD-карта монтируется для пользователя, который входит в систему, и который дает права доступа только этому пользователю. При добавлении записи в fstab SD-карта будет монтироваться с правами root с доступом ко всем пользователям. этот ч / б доступ можно будет контролировать позже.
sudo blkid
перечисляет все разделы (включая вашу SD-карту), доступные в вашей системе. Записать вниз UUID
раздела, который вы хотите смонтировать при загрузке.
сейчас создайте папку, например sudo mkdir /media/ExtSD01
, Это папка, в которую будет смонтирован раздел вашей SD-карты. Эта папка будет принадлежать пользователю root. Чтобы дать другим пользователям разрешение на запись в эту папку, нам нужно дать соответствующие разрешения. так chmod -R 777 /media/ExtSD01
было бы достаточно хорошо. Теперь вам нужно отредактировать ваш файл fstab. Для этого введите следующую команду.
sudo nano / etc / fstab
перейдите в конец файла и добавьте туда следующую строку.
UUID='enter your UUID here' /media/ExtSD01/ auto,user,rw 0 0
Перезагрузите систему, и вы должны быть готовы к работе.
Вы можете попытаться добавить новую группу под названием sdcard и написать правило udev для ваших sd-карт.
Давайте начнем с простой части и создадим новую группу:
sudo groupadd sdcard
Теперь добавьте пользователя (ей) в группу SDCard:
sudo usermod -aG sdcard username
Теперь нам нужно найти дополнительную информацию о SD-картах, которые вы используете.
Нам нужно название продукта или идентификатор продукта и название поставщика или идентификатор Vencor
подключите SD-карту и введите
lsblk
В моем случае это / dev / sda.
Я знаю, что имена ваших устройств разные, но для простоты я буду называть SD-карту / dev / sda.Ищите на своих устройствах нужную информацию, используя
sudo lshw
Эти дополнительные команды могут помочь вам найти поставщика и продукт:
lsusb
usb-devices
dmesg
В моем случае lshw предоставил следующую информацию:
*-usb:0
description: Mass storage device
product: USB2.0-CRW
vendor: Generic
physical id: 1
bus info: usb@3:1
logical name: scsi0
version: 57.13
serial: 20120926571200000
capabilities: usb-2.00 scsi emulated scsi-host
configuration: driver=usb-storage maxpower=500mA speed=480Mbit/s
*-disk
description: SCSI Disk
product: SD/MMC/MS PRO
vendor: Generic-
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: 1.00
serial: 2012062914345300
capabilities: removable
configuration: ansiversion=4 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sda
Как вы можете видеть, мой продукт USB2.0-CRW и поставщик Generic.
Теперь вы можете создать файл в /etc/udev/rules.d/ и назвать его, т.е. 10-sdcard.rules
# /etc/udev/rules.d/10-sdcard.rules # This file allows the group sdcard to mount sd cards # without administrative permissions SUBSYSTEM=="usb", ATTRS{product}="USB2.0-CRW", ATTRS{vendor}=="Generic", ACTION=="add", OWNER="root", GROUP="sdcard", MODE="0664"
Это добавит узел устройства для SDCard и предоставит разрешение на чтение и запись для группы SDCard.
Если вы найдете идентификатор продукта (например, 1234) или идентификатор поставщика (например, abcd) вместо имени продукта и имени поставщика, используйте ATTRS{idProduct}="1234", ATTRS{idVendor}="abcd"
,
Если ваши две SD-карты имеют одинаковый идентификатор / имя поставщика и идентификатор / имя продукта, этой одной строки должно быть достаточно. Если нет, добавьте дополнительную строку, предоставляющую информацию для другой SD-карты.
- Перезагрузите вашу систему
Пользователи в группе SDCard должны теперь иметь возможность монтировать SD-карты.
Вы добавили это в /etc/fstab
(согласно man-странице, первый параметр также может быть путем к устройству, если я правильно понимаю):
/dev/mmcblk0p1 /media/ExtSD01/ auto auto,user,rw 0 0
Предполагая, что на SD-карте установлена файловая система Microsoft (NTFS, FAT32 или exFAT), я предлагаю следующие изменения:
Заменить опцию монтирования
auto
сnoauto
чтобы система хорошо загружалась без вставленной SD-карты.Недостаток: Вы должны установить диск вручную, что вы можете сделать очень легко, и он будет установлен в соответствии с линией в
/etc/fstab
,sudo mount /media/ExtSD01/
Если вы хотите, вы можете сделать псевдоним для него,
alias mtsd='sudo mount /media/ExtSD01/'
Добавьте опцию монтирования
umask
предоставить желаемые разрешения всем пользователям
Результатом является следующая строка в /etc/fstab
,
/dev/mmcblk0p1 /media/ExtSD01/ auto noauto,user,rw,umask=000 0 0
Смотрите следующую ссылку, если вы хотите настроить параметры монтирования,
Как насчет отсутствия автоматического подключения USB-накопителей, когда они подключены. В этом случае вы можете вручную смонтировать их по своему желанию. Чтобы отключить автомонтирование, используйте dconf-editor и перейдите в org/gnome/desktop/media-processing и отключите автомонтирование, установив для него значение false. Затем вручную подключите SD-карту к папке с разрешениями, установленными по вашему желанию.