Операции с 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

  1. подключите SD-карту и введите

    lsblk
    

    В моем случае это / dev / sda.
    Я знаю, что имена ваших устройств разные, но для простоты я буду называть SD-карту / dev / sda.

  2. Ищите на своих устройствах нужную информацию, используя

    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.

  1. Теперь вы можете создать файл в /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-карты.

  1. Перезагрузите вашу систему

Пользователи в группе 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

Смотрите следующую ссылку, если вы хотите настроить параметры монтирования,

Как использовать 'chmod' на NTFS (или FAT32) разделе?

Как насчет отсутствия автоматического подключения USB-накопителей, когда они подключены. В этом случае вы можете вручную смонтировать их по своему желанию. Чтобы отключить автомонтирование, используйте dconf-editor и перейдите в org/gnome/desktop/media-processing и отключите автомонтирование, установив для него значение false. Затем вручную подключите SD-карту к папке с разрешениями, установленными по вашему желанию.

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