私はすでに「aid_sdcard_rw」グループのメンバーです:
android@localhost:~$ whoami
android
android@localhost:~$ groups
android aid_radio ...... aid_sdcard_rw ......
ご覧のとおり、私はすでにaid_sdcard_rwグループに属しています。その後、/storage/sdcard0ディレクトリにアクセスすると、次のようになります。
android@localhost:~$ ls /storage/sdcard0/
ls: cannot open directory '/storage/sdcard0/': Permission denied
しかし:
android@localhost:~$ ls -l /storage/
total 8
d---rwxr-x 17 android aid_sdcard_rw 8192 1月 1 1970 sdcard0
"aid_sdcard_rw"グループのメンバーには読み取り権限がありませんか?この権限拒否が発生するのはなぜですか?
私はubuntu 16.04を実行しており、外部SDカードが接続されているAndroid携帯電話でLinux Deployというアプリを使用しています。
Welcome to Ubuntu 16.04 LTS (GNU/Linux 3.4.5 armv7l)
* Documentation: https://help.ubuntu.com/
Ubuntu 16.04 LTS [running via Linux Deploy]
/storage/sdcard0 ディレクトリは外部 SD カードマウントディレクトリです (下記の最後の行を参照)。
android@localhost:~$ cat /etc/mtab
/dev/loop1 / ext4 rw,relatime,data=ordered 0 0
proc /proc proc rw,relatime 0 0
sys /sys sysfs rw,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/block/vold/179:97 /storage/sdcard0 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/storage/sdcard0をumountし、-o umask=0000オプションを使用して再マウントしようとしましたが、ls -l /storageコマンドを実行すると上記と同じ結果が表示されます。
答え1
ファイルまたはディレクトリを所有しているユーザー明示的に拒否する権限でファイルまたはディレクトリにアクセスすると、ユーザーはそのファイルまたはディレクトリにアクセスできません。所有者がアクセス権を持つグループのメンバーであるかどうかは重要ではありません。
つまり、所有者としてファイルまたはディレクトリにアクセスするには、その所有者へのアクセスを許可する必要があります。
あなたの場合、x
所有者権限を持たないディレクトリがあります。したがって、所有者はディレクトリにアクセスできません。
この問題を解決するには、次を使用します。
chmod u+x /storage/sdcard0
所有者がディレクトリの内容も一覧表示できる必要がある場合は、所有者にもr
権限を付与してください。ファイルまたはサブディレクトリを作成または削除するには権限が必要ですw
。
カードを取り付けなくてもディレクトリの権限を設定できる必要があります。 SDカードをマウントするとき、マウントポイントの権限はディレクトリ権限を継承する必要があります。
答え2
Androidユーザーは、権限のないディレクトリの所有者でもあります(Androidユーザーが有効なグループのメンバーである場合も同様です)。回避策は、ディレクトリ所有者を変更するchown
か、別のユーザー(有効なグループに属する)を試してみることです。
答え3
ファイル権限は優先順位によって決まります。
- ユーザー権限はファイルの所有者に影響します。
- グループ権限は、ファイルグループの全員に影響を与えます。
- 他の権限は他のすべての人に影響を与えます。
権限はマージされず、順次テストされます。つまり、グループ権限は所有者に影響を与えず、他の権限は所有者とグループには影響しません。これにより、より多くのユーザーグループがもっとより具体的な特権ではなく特権 - 通常はアクセス可能なファイルまたはディレクトリがありますが、特定のユーザーまたはグループを除外したい場合に便利です。
ただし、これはユーザーを除外しても効果的ではありません。ファイル所有者は権限を変更する権限もあるため、所有者は次のことができます。
chmod u+rwx /storage/sdcard0
ただし、ユーザーが利用できない限られた環境にいる場合は、chmod
この方法がうまく機能する可能性があります。
答え4
次のように実行してみてください。
newgrp aid_sdcard_rw
ls /storage/sdcard0/