私はAndroidでTermuxを使用しており、SDカードのファイルをTermuxホームフォルダにコピーしました。 (root権限を持つファイルエクスプローラアプリを使用しています)
$ whoami
u0_a87
$ groups
u0_a87
$ su -c chown u0_a87:u0_a87 Files.zip
$ su -c chmod 777 Files.zip
$ ls -la
total 7292
drwx------ 2 u0_a87 u0_a87 4096 Jul 22 09:13 .
drwx------ 4 u0_a87 u0_a87 4096 Jul 22 09:13 ..
-rwxrwxrwx 1 u0_a87 u0_a87 7454766 Jul 22 01:24 Files.zip$ unzip
Files.zip
unzip: can't open Files.zip[.zip]
$ cat Files.zip
cat: Files.zip: Permission denied
なぜまだ接続できないのですか?
ところで、これはうまくいきます:
$ mkdir test
$ zip -r test.zip test
adding: test/ (stored 0%)
$ ls -la
total 7300
drwx------ 3 u0_a87 u0_a87 4096 Jul 22 09:31 .
drwx------ 4 u0_a87 u0_a87 4096 Jul 22 09:13 ..
-rwxrwxrwx 1 u0_a87 u0_a87 7454766 Jul 22 01:24 Files.zip
drwx------ 2 u0_a87 u0_a87 4096 Jul 22 09:31 test
-rw------- 1 u0_a87 u0_a87 160 Jul 22 09:31 test.zip
$ rm -rf test
$ unzip test.zip
Archive: test.zip
$ unzip test.zip
Archive: test.zip
$ ls -la
total 7300
drwx------ 3 u0_a87 u0_a87 4096 Jul 22 09:31 .
drwx------ 4 u0_a87 u0_a87 4096 Jul 22 09:13 ..
-rwxrwxrwx 1 u0_a87 u0_a87 7454766 Jul 22 01:24 Files.zip
drwx------ 2 u0_a87 u0_a87 4096 Jul 22 09:31 test
-rw------- 1 u0_a87 u0_a87 160 Jul 22 09:31 test.zip
何が欠けていますか? su/sudoなどを使用せずに、自分のユーザーアカウントからこのファイルにどのようにアクセスできますか?
また、ファイルに拡張属性があるかどうかを調べようとしました。インターネットによると、ls -lは+
文字の拡張属性(たとえば)があることを示します-rwxrwxrwx+
。上記のように、これは事実ではありません。確実にするために、attr
次のコマンドを使用して確認しました。
$ attr -l ./Files.zip
Attribute "selinux" has a 28 byte value for ./Files.zip
$ attr -g selinux ./Files.zip
attr_get: No data available
Could not get "selinux" for ./Files.zip
$ su -c attr -l ./Files.zip
sush: attr: not found
$ su -c attr -g selinux ./Files.zip
sush: attr: not found
私は結果がわからない。 「selinux」属性があることを知らせる理由は理解できませんが、値の提供を拒否してそれを使用しようとすると、su -c
値を取得することはどこでも「selinux」属性もリストされません。失敗します。
答え1
私は同じ問題に直面しました。ここで正確に何が起こっているのかわかりませんが、回避策は別のファイルエクスプローラを使用せずにファイルをコピーすることです。代わりに、termuxに関連するAndroid権限があることを確認してください(設定 - >アプリケーション - >権限および/またはtermux-setup-storageの実行)。
SDカードにシンボリックリンクされたtermuxホームフォルダに、Storageという別のフォルダが必要です。
答え2
ルートとしてAndroid 7xがあります。restorecon copy_of_file.db
私は同じ問題に直面し、質問で詳しく説明したのと同じ結果を得ました。 termux Wikiはこの問題を解決するのに十分な手がかりを提供します。実行できる必要がありますrestorecon
(この場合はrootとしてtsudo
)。