Termuxが内部ストレージにアクセスする権限がない-読み取りでも


19

termuxhttps://termux.com)ターミナルエミュレーションプログラムを使用して、次のコマンドを入力します。

ls /sdcard

次のエラーが表示されます。

ls: can't open '/sdcard': Permission denied

Androidの/ sdcardディレクトリがシンボリックリンクであることを認識して、実際のディレクトリの場所を見つけようとしました-それは単なるシンボリックリンクではなく、別のシンボリックリンクへのシンボリックリンクであり、実際のディレクトリは/ storage / emulated /です0

だから最後に、私は入力しました:

ls -ld /storage/emulated/0

私が得た結果は:

drwxrwx--x   63 root     sdcard_r      4096 Aug 10 12:04 /storage/emulated/0

だから、簡単に言えば---私がいるかどうかわかりませんtermuxはの権限で実行するために使用sdcard_rのグループかどうかOのパーミッションが読み書きできるようにするために使用-私はそれがために使用される二つのかを知る必要があり、物事を修正する方法-内蔵SDカードのコンテンツにアクセスできることは非常に重要です。

いいえ、デバイスはルート化されておらず、ルート化する予定もありません。したがって、デバイスをルート化して取得する必要がある情報を提供することはできません。ただし、これまで決して根付いていないことが原因で、/ sdcardディレクトリへの読み取りアクセスができませんでした。これは新しい(そして邪魔な)ものです。

確かに、以前にこれをやろうとしてから数か月が経ちましたが、Androidからのこの新しい制限により、termuxとwho-knows-what-else の使いやすさが大幅に低下します。私のSDカードに。(すべてではありませんが、書き込みアクセス許可がなくても、まだ多くのことができますが、現在のように、読み取りアクセス許可を取得できない場合は、水にかなり詰まっています。)


うーん、READ_EXTERNAL_STORAGE許可があるように見えるので、アクセスできるはずです。
マシュー

3
はい---しかし、どうやらスイッチが切れたようです。「システム環境設定」>「一般」>「アプリケーション」>「Termux」で行ったときに気付いたのですが、何らかの方法でオフになったファイルにアクセスするためのトグルスイッチがあることがわかりました。言うまでもなく-私はそれを再びオンにし、問題は解決しました。------もちろん-差し迫った危機は終わりました---しかし、これはすべて、そもそもなぜスイッチがオフになったのかという問題を提起しています。(私はそれをやったことがないことを知っています。)
user3080003

私は同じ問題を抱えていました、そして、あなたの答えは私のためにそれを修正しました。編集:バカなEnter-to-Submit。新しい行を作成しようとしていました。ここで私は何だと思います他のプログラムが行うようにそれは、どんな理由であれ、Termuxの場合には、要求許可しないAndroidの7は現在、権限拒否できますが、(イェーイを!):起こりました。そのため、問題は、何らかの形でスイッチがオフになったということではなく、スイッチがオンになっていないことです。しかし、これは推測です。
アンドリュー

3
termux-setup-storageを実行して、アプリにストレージ許可を要求させることができます。termux.com/storage.htmlを参照してください。
fornwall

回答:



5

Androidの新しいバージョンでは、実行時にアプリが許可を求める必要があります。すでに気づいているかもしれません。1つの例として、初めて何かをダウンロードしようとすると、Chromeがストレージの許可を求めます。Termuxの場合、これは問題です。許可はデフォルトで「許可されていません」です。したがって、Termuxがタスクの許可を必要とする場合、Termuxはこれらの許可を要求するように更新されていないため、代わりにタスクを実行しようとし、結果としてエラーをスローします。残念ながら、開発者はこれを自分で修正する必要があります。ありがたいことに、Androidではアプリのアクセス許可を手動で管理することができます。開発者がTermuxを適宜更新するまで、これがおそらく唯一の方法です。

ステップ1:Termuxのアプリ情報ページに移動します

このページにアクセスするには複数の方法があります。電話によって動作が異なる可能性があるため、知っているものをすべて含めました。

方法1:マルチタスクメニューを使用する

  1. Termuxを開きます。
  2. 押してマルチタスクボタンマルチタスクメニューを開きます。これは、左側のホームボタンの横にあるはずです。
  3. アプリケーションのリストでは、Termuxが最初になります。アイコンを長押しします。

    一部の携帯電話では、すでに情報ページにアクセスしています。他の携帯電話では、代わりに上部にTermuxのアプリボックスが変更され、どこかに情報アイコン(ℹ)が表示されます。他の電話では、「アプリ情報」オプションを含むコンテキストメニューが表示される場合があります。どちらの場合も、これらをタップします。

方法2:通知パネルを使用する

  1. Termuxを開きます。Termuxの通知を表示する必要があります。
  2. 通知パネルをプルダウンして、Termuxの通知を見つけます。
  3. 以下のいずれかを試してください:

    • 通知を左右にスワイプして、歯車(⛭)または情報アイコン(ℹ)を探してタップします。Termuxの通知を却下することはできませんので、心配する必要はありません。
    • 通知をタップしてホールドし、歯車(gear)、情報アイコン(ℹ)、または「アプリ情報」オプションのあるコンテキストメニューを探してタップします。
    • アプリのアイコンや名前を探します。通知を下にスワイプする必要がある場合があります。それを長押しします。歯車(⛭)、情報アイコン(ℹ)、またはコンテキストメニューがポップアップする場合があります。それに応じてタップします。

方法3:App Managerを使用する

  1. [設定]> [アプリ]に移動します。
  2. 「アプリケーションマネージャ」などのラベルが付いたオプションを探します。お使いのデバイスに依存しているようです。
  3. Termuxのエントリを探してタップします。フィルターを「インストール済みアプリ」または「ダウンロード済みアプリ」に変更する必要がある場合があります。

ステップ2:許可を変更する

これで、Termuxの名前、アイコン、および「アンインストール」と「強制停止」という2つのボタンが付いたバージョン番号のページが表示されます。その下には、他のさまざまなオプションがあります。

  1. 「Permissions」というラベルのオプションを探します(スクロールする必要がある場合があります)。それをタップします。
  2. ストレージ許可のエントリが必要です。横にあるスイッチをクリックしてオンにします。ストレージ許可がリストされていない場合は、Termuxでストレージ関連のコマンドを使用して許可拒否エラーを取得し、戻ってきます。

変更をテストする

これで、ストレージへのTermuxアクセスが許可されました。以下のコマンドでこれをテストできます:
ls /sdcard/
許可拒否エラーが表示されない場合、動作しました!Termuxを再インストールしない限り、これを再度行う必要はありません。


0

2017年7月です。同じ問題があり、グーグルで検索してここに到着しました。Matthew Readのコメントは解決策への道を示しましたが、それを明確に綴る答えはないので、ここにtl; drがあります:

Termuxはインストール時にファイルシステムのアクセス許可を要求しないため、[設定] => [アプリケーション] => [Termux] => [アクセス許可]で有効にする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.