web-dev-qa-db-ja.com

なぜ私はすでに入っているグループに許可を与えることができないのですか?

私はすでにグループ「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であり、Linux Deployというアプリを使用してmy Android電話で実行しており、私の電話には外部sdカードが挿入されています:

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

Umount/storage/sdcard0を試し、オプション-o umask = 0000で再マウントしましたが、コマンドls -l/storageは上記と同じ結果になります。

4
zeyang yue

ファイルまたはディレクトリを所有するユーザーが明示的に拒否されたアクセス許可を介したファイルまたはディレクトリへのアクセスである場合、そのユーザーはファイルまたはディレクトリにアクセスできません。所有者がアクセス権を持つグループのメンバーであるかどうかは関係ありません。

つまり、所有者としてファイルまたはディレクトリにアクセスするには、所有者へのアクセスを許可する必要があります。

あなたの場合、所有者のx権限のないディレクトリがあります。したがって、所有者はディレクトリにアクセスできません。

これを修正するには、

chmod u+x /storage/sdcard0

所有者がさらにディレクトリの内容を一覧表示できるようにする必要がある場合は、所有者にもr権限を付与します。ファイルまたはサブディレクトリを作成または削除するには、w権限が必要です。

カードをマウント解除した状態で、ディレクトリにアクセス許可を設定できるはずです。 SDカードをマウントするときは、マウントポイントのアクセス許可をディレクトリのアクセス許可から継承する必要があります。

7
Kusalananda

Androidユーザーはディレクトリの所有者でもあり、権限を持たない所有者です(Androidユーザーが有効なグループのメンバーである場合でも))。ディレクトリの所有者をchownで変更するか、別のユーザー(有効なグループに属する)で試してください。

5
Dasel

ファイルのアクセス許可には優先順位があります。

  • ユーザー権限はファイルの所有者に影響します。
  • グループ権限は、ファイルのグループのすべてのユーザーに影響します。
  • その他の権限は他のすべてのユーザーに影響します。

権限はマージされません-順番にテストされます。つまり、グループの権限は所有者に影響を与えず、他の権限は所有者とグループに影響を与えません。これにより、より幅広いユーザーセットがより具体的なユーザーよりもmoreアクセス許可を持つことができる状況が可能になります。これは、一般的にアクセスできるはずのファイルまたはディレクトリがあるが、特定のユーザーまたはグループ。

ただし、ユーザーを除外する場合、これはほとんど効果がありません。ファイルの所有者は、その権限を変更する権限も持っているため、所有者は次のことができます

chmod u+rwx /storage/sdcard0

ただし、ユーザーがchmodを使用できない制限された環境にいる場合、これは効果的です。

4
Barmar

次のように実行してみてください。

newgrp aid_sdcard_rw 
ls /storage/sdcard0/
0
Romeo Ninov