私はChromebookを使用しており、シェルを介してAndroidコンテナの内部を閲覧したいと思います。コンテナがパスにマウントされます/run/containers/android_XXXXX
。cd
ディレクトリに入ろうとしたときに私は聞いたPermission Denied
。次のようにコマンドを実行してみましたが、sudo
何らかの理由でcd
コマンドにアクセスできなくなりました。chmod u+x
ディレクトリを実行しましたが、サイコロはありません。
ここでどのような措置を取ることができますか?
stat
ディレクトリでこれを実行しましたが、次のものが返されます。
File: ‘android_XXXXXX/’
Size: 80 Blocks: 0 IO Block: 4096 directory
Device: fh/15d Inode: 59640 Links: 3
Access: (0700/drwx------) Uid: (655360/ UNKNOWN) Gid: (655360/ UNKNOWN)
Context: u:object_r:tmpfs:s0
Access: 2016-10-31 04:04:52.680000040 +0000
Modify: 2016-10-31 04:04:52.200000040 +0000
Change: 2016-10-31 04:44:54.990001186 +0000
Birth: -
答え1
このディレクトリは、uid (パスワードファイルにリストされていません) をdrwx------
持つ人だけが読み込んだり入力したりできます。655350
sudo cd
cd
このコマンドはシェルに組み込まれているコマンドなので、見つかりません。組み込まれていないと動作しません。現在のシェルのプロセスIDが54000で、/ bin / cdコマンドを実行すると仮定すると、そのPIDは54309になる可能性があります。プロセス54309のディレクトリを変更した後に終了します。プロセス54000はまだ元のディレクトリにあります。
chmod u+x
権限を変更しますuser (owner)
。
あなたが望むものsudo chmod go+rx /run/containers/android_XXXXX
答え2
記載されている@icarusなどの権限を確認することに加えて、アクセス制御リスト(ACL)を確認して、デフォルトのファイルアクセスgetfacl
権限をオーバーライドする規則がないことを確認する必要があります。
注:getfacl
システムに存在しない場合は問題ではない可能性があります。
サンプルACLは問題ではありません。
$ getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
これは、標準 POSIX アクセス規則に加えて ACL 規則が適用されないことを示します。ls -ald
権限の観点から、出力と一致することがわかります。 (-d
引数はls
、内容ではなくディレクトリ自体を表示するように指示します。)
$ ls -ald test/
drwxr-xr-x 2 root root 4096 May 8 19:11 test/
問題を引き起こす可能性があるACLの例。
$ getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
user:mc:r--
group::r-x
mask::r-x
other::r-x
$ ls -ald test/
drwxr-xr-x+ 2 root root 4096 May 8 19:11 test/
この場合、出力を見るとls -ald
問題がないと思います。ただし、ACLルールはPOSIXルールに適用されるため、ユーザーはmc
実行権限が不足しているため、そのディレクトリに変更することはできません。他の一連の権限はこれを与えたかもしれませんmc
。
ただし、所有者権限は他のすべてのACLルールよりも優先され、グループ所有者権限も同様であることを覚えておくことが重要です。
Arch WikiにはACLに関する詳細情報があります。確認するhttps://wiki.archlinux.org/title/Access_Control_Listsそれらについてもっと詳しく知りたい場合。
もちろん、これが自分の問題であるかどうかを常に確認したくない場合もありgetfacl
、確認するのを忘れることもあります。幸いなことにls -al
、他のACLルールをいつ適用するかを教えてください。出力を見ると、ls -al
ACLルールが適用されている限り、許可ビットリストの最後にaが表示されることがわかります+
。それ以外の場合(少なくとも単純なテストでは)表示されません。
+
TLDR:権限リストにこの内容が表示されたら、ls -al
アクセス制御リスト(getfacl
)を確認してください。