Я использую Ubuntu MATE 16.04, и копирование изображений в и из моего внутреннего устройства чтения карт SD в основном работает нормально… на моем основном аккаунте.
Если другой член семьи входит в систему (моя учетная запись все еще активна в фоновом режиме, но не вышла из системы), а затем вставляет SD-карту, он не может получить к ней доступ:
Так это какая-то проблема с правами ...? Войдя в систему как основной пользователь, я также вижу некоторые проблемы с правами:
Итак, что бы это ни было, как можно Я ослабил права доступа к устройству чтения SD-карт, чтобы он стал доступен для всех (включая пользователей без прав администратора)?
Возможно, какая-то «расслабленная» etc/fstab
запись? (пока нет соответствующей записи)
Обновление I:
Переключение назад & amp; далее между двумя 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? В другом месте?
Чтобы смонтировать 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 id
подключите вашу 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 , а поставщик - Универсальный .
Теперь вы можете создать файл в /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
Предполагается, что у вас есть файловая система Microsoft (NTFS). , FAT32 или exFAT) в SD-карте, я предлагаю следующие модификации:
Замените опцию монтирования 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-карту к папке с разрешениями, установленными по вашему желанию.