私がすでに属しているグループの権限を受け取れないのはなぜですか?

私がすでに属しているグループの権限を受け取れないのはなぜですか?

私はすでに「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カードをマウントするとき、マウントポイントの権限はディレクトリ権限を継承する必要があります。

おすすめ記事