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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

也许一些“放松”的etc/fstab条目? (那里没有相关的条目)


更新I:

在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? 别处?

要在启动时为所有用户安装SD卡,我们需要在fstab文件中输入一个条目。 目前正在发生的事情是,SD卡正在为登录的用户安装,该用户仅向该用户授予访问权限。 通过在fstab中添加条目,SD卡将由root用户安装,并可访问所有用户。 这个r / w访问可以在以后控制。

sudo blkid列出了系统上可用的所有分区(包括SD卡)。 记下要在引导时挂载的分区的UUID

现在创建一个文件夹,例如sudo mkdir /media/ExtSD01 。 这是安装SD卡分区的文件夹。 该文件夹将由root拥有。 要授予其他用户r / w进入此文件夹的权限,我们需要提供适当的权限。 所以chmod -R 777 /media/ExtSD01就足够了。 现在您需要编辑fstab文件。 为此,请键入以下命令。

sudo nano / etc / fstab

转到文件的底部并在那里添加以下行。

 UUID='enter your UUID here' /media/ExtSD01/ auto,user,rw 0 0 

重启系统你应该好好去。

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

您可以尝试添加一个名为sdcard的新组,并为您的SD卡写一个udev规则

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

  sudo groupadd sdcard 

现在将用户添加到sdcard组:

  sudo usermod -aG sdcard username 

现在我们必须挖掘您正在使用的SD卡的其他信息。
我们需要产品名称产品ID以及供应商名称vencor id

  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组提供读写权限。
如果您发现产品ID (即1234)或供应商ID (即abcd)而不是产品名称供应商名称,请使用ATTRS{idProduct}="1234", ATTRS{idVendor}="abcd"

如果您的两张SD卡具有相同的供应商ID /名称和产品ID /名称,那么这一行应该足够了。 如果没有添加额外的行,提供其他SD卡的信息。

  1. 重新启动系统

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

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

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

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

  • 使用noauto替换mount选项auto ,以便在未插入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”?