web-dev-qa-db-ja.com

複数のユーザーアカウントからのSDカード操作?

Ubuntu MATE 16.04を実行しており、内部SDカードリーダーとの間で画像をコピーすると、基本的には正常に動作します...メインアカウントで。

別の家族がログインして(ログアウトせずにバックグラウンドでアクティブになっているログイン)、SDカードを挿入すると、アクセスできなくなります。

enter image description here

それで、これはある種の権利の問題ですか...?メインユーザーとしてログインし直すと、いくつかの権限の問題もあります。

enter image description here

だから、それが何であれ、SDカードリーダーのアクセス権をどのように緩めると、誰でも(管理者以外のユーザーを含む)アクセスできるようになりますか?

おそらく「リラックスした」etc/fstabエントリですか? (関連するエントリはまだありません)


更新I:

2人のSDカードを切り替えて(1人のユーザーから)/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?他に?

7
Frank Nocke

すべてのユーザーの起動時にSDカードをマウントするには、fstabファイルにエントリが必要です。現在起こっているのは、ログインしているユーザーのためにSDカードがマウントされ、そのユーザーのみにアクセス許可が与えられることです。 fstabにエントリを追加すると、SDカードはすべてのユーザーにアクセスできるルートでマウントされます。このr/wアクセスは後で制御できます。

Sudo blkidは、システムで使用可能なすべてのパーティション(SDカードを含む)をリストします。ブート時にマウントするパーティションのUUIDを書き留めます。

Sudo mkdir /media/ExtSD01などのフォルダーを作成します。これは、SDカードパーティションがマウントされるフォルダーです。このフォルダはルートが所有します。他のユーザーにこのフォルダーへのr/wの許可を与えるには、適切な許可を与える必要があります。 chmod -R 777 /media/ExtSD01で十分でしょう。次に、fstabファイルを編集する必要があります。そのためには、次のコマンドを入力します。

Sudo nano/etc/fstab

ファイルの最後に移動して、そこに次の行を追加します。

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

システムを再起動すると、準備完了です。

1

sdcardという新しいグループを追加して、udevルールあなたのSDカード用。

簡単な部分から始めて、新しいグループを作成しましょう。

    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グループに読み取りおよび書き込み権限が付与されます。
product id(ie 1234)またはvendor id(すなわちabcd)の代わりに製品名およびベンダー名ATTRS{idProduct}="1234", ATTRS{idVendor}="abcd"を使用します。

2つのsdカードのベンダーID /名前と製品ID /名前が同じ場合、この1行で十分です。そうでない場合は、他のSDカードの情報を提供する追加の行を追加します。

  1. システムを再起動します

これで、sdcardグループのユーザーはsdカードをマウントできるはずです。

0

USBドライブが接続されたときに自動マウントされないようにすることはどうですか。その場合、必要に応じて手動でマウントできます。自動マウントを無効にするには、dconf-editorを使用してorg/gnome/desktop/media-handlingに移動し、falseに設定して自動マウントを無効にします。次に、必要に応じて設定された権限を持つフォルダにSDカードを手動でマウントします。

0
jpezz

これを/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」を使用するにはどうすればよいですか?

0
sudodus