権限が拒否されました:ディレクトリにCDを挿入します。

権限が拒否されました:ディレクトリにCDを挿入します。

私はChromebookを使用しており、シェルを介してAndroidコンテナの内部を閲覧したいと思います。コンテナがパスにマウントされます/run/containers/android_XXXXXcdディレクトリに入ろうとしたときに私は聞いた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 cdcdこのコマンドはシェルに組み込まれているコマンドなので、見つかりません。組み込まれていないと動作しません。現在のシェルのプロセス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 -alACLルールが適用されている限り、許可ビットリストの最後にaが表示されることがわかります+。それ以外の場合(少なくとも単純なテストでは)表示されません。

+TLDR:権限リストにこの内容が表示されたら、ls -alアクセス制御リスト(getfacl)を確認してください。

関連情報