来自多个用户帐户的 SD 卡操作?

来自多个用户帐户的 SD 卡操作?

我正在运行 Ubuntu MATE 16.04,并且在我的主帐户上从我的内部 SD 卡读卡器复制图像基本上可以正常工作。

如果另一个家庭成员登录(我的登录仍在后台活动,未注销)然后插入 SD 卡,则他无法访问它:

enter image description here

那么,这是某种权利问题吗……?以主用户身份重新登录后,我还看到一些权利问题:

enter image description here

那么,无论它是什么,我如何才能放宽 SD 卡读卡器的访问权限,以便每个人都可以访问它(包括非管理员用户)?

也许有一些“轻松”的etc/fstab条目?(目前还没有相关条目)


更新一:

在 2 张 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(根据手册页,如果我理解正确的话,第一个参数也可能是设备路径):

/dev/mmcblk0p1  /media/ExtSD01/  auto   auto,user,rw 0 0

这有效有些很好,现在我可以mount /dev/mmcblk0p1/卸载到用户中立路径,不是自动的,但至少可以从命令行卸载(缺点 1)。但是我的系统挂起并重新启动 - 除非我在启动前插入 SD 卡(缺点 2)。所以我再次删除了那行……

也许在 Ubuntu Mate 中还有其他地方可以编辑挂载选项?system.d?其他地方?

答案1

要在启动时为所有用户安装 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

重新启动系统就可以了。

答案2

如果 USB 驱动器在连接时没有自动挂载,该怎么办?在这种情况下,您可以根据需要手动挂载它们。要禁用自动挂载,请使用 dconf-editor 并转到 org/gnome/desktop/media-handling 并通过将其设置为 false 来禁用自动挂载。然后根据需要将 SD 卡手动挂载到具有权限设置的文件夹。

答案3

您可以尝试添加一个名为SD卡并写一个udev 规则适用于您的 SD 卡。

让我们从简单的部分开始并创建一个新组:

    sudo groupadd sdcard

现在将用户添加到 sdcard 组:

    sudo usermod -aG sdcard username

现在我们必须挖掘有关您使用的 SD 卡的更多信息。
我们需要产品名称或者产品编号和一个供应商名称或者vencor id

  1. 插入 SD 卡并输入

    lsblk
    

    在我的情况下是 /dev/sda。
    我知道您的设备名称不同,但为了简单起见,我将 SD 卡称为 /dev/sda。

  2. 使用以下方式搜索设备以查找所需信息

    sudo lshw
    

这些附加命令可以帮助您找到供应商和产品:

  • lsusb
  • usb-devices
  • dmesg

就我而言瘦身提供了以下信息:

    *-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并且供应商是通用的

  1. 您现在可以在中创建一个文件/etc/udev/rules.d/并将其命名为 ie10-SD卡.规则

    # /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"
    

这将添加 SD 卡的设备节点,并提供读写权限SD卡组。
如果您发现产品编号(即 1234)或供应商 ID(即 abcd)而不是产品名称供应商名称使用ATTRS{idProduct}="1234", ATTRS{idVendor}="abcd"

如果您的两张 SD 卡具有相同的供应商 ID/名称和产品 ID/名称,则这一行就足够了。如果没有,请添加另一行提供另一张 SD 卡的信息。

  1. 重新启动系统

sdcard 组中的用户现在应该能够安装 SD 卡。

答案4

您将其添加到/etc/fstab(根据手册页,如果我理解正确的话,第一个参数也可能是设备路径):

/dev/mmcblk0p1  /media/ExtSD01/  auto   auto,user,rw 0 0

假设您的 SD 卡中有一个 Microsoft 文件系统(NTFS、FAT32 或 exFAT),我建议进行以下修改:

  • 将挂载选项替换autonoauto,使系统无需插入 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

请参阅以下链接,如果您想微调挂载选项,

如何在 NTFS(或 FAT32)分区上使用“chmod”?

相关内容