Không có quyền cho Termux truy cập bộ nhớ trong - ngay cả để đọc


19

Sử dụng chương trình mô phỏng đầu cuối termux ( https://termux.com ), tôi gõ lệnh sau:

ls /sdcard

Tôi nhận được lỗi sau đây:

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

Nhận thấy rằng thư mục / sdcard trên Android là một liên kết tượng trưng, ​​tôi đã cố gắng tìm vị trí của thư mục thực tế - học được rằng nó không chỉ là một liên kết tượng trưng, ​​mà là một liên kết tượng trưng đến một liên kết tượng trưng khác và thư mục thực tế là / Storage / giả lập / 0

Vì vậy, cuối cùng, tôi đã gõ:

ls -ld /storage/emulated/0

Kết quả tôi nhận được là:

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

Vì vậy, trong ngắn hạn --- Tôi không biết liệu termux được sử dụng để chạy với các quyền của nhóm sdcard_r hay liệu các quyền o được sử dụng để cho phép đọc-ghi - nhưng tôi cần biết hai trong số đó đã từng và cách khắc phục mọi thứ - bởi vì việc có thể truy cập nội dung của thẻ SD nội bộ là rất quan trọng.

Không, thiết bị của tôi không được root, tôi cũng không có kế hoạch root nó - vì vậy tôi không thể cung cấp bất kỳ thông tin nào mà tôi phải root thiết bị để lấy. Tuy nhiên, việc không được root không bao giờ trong quá khứ khiến tôi không thể truy cập đọc vào thư mục / sdcard - vì vậy đây là điều mới (và đáng lo ngại).

Được cho phép - đã vài tháng trước khi tôi thử làm điều này - nhưng hạn chế mới này của Android đã cản trở nghiêm trọng khả năng sử dụng của termux và những người hiểu biết - vì tôi cần có quyền truy cập vào các tệp trên thẻ SD của tôi. (Tôi vẫn có thể làm rất nhiều, ngay cả khi không phải là tất cả mọi thứ, ngay cả khi không có quyền ghi - nhưng tôi bị kẹt khá nhiều trong nước nếu tôi không thể có được quyền đọc, như hiện tại là trường hợp.)


Hmm, có vẻ như nó có READ_EXTERNAL_STORAGEquyền, vì vậy nó nên có quyền truy cập.
Matthew đọc

3
Phải --- nhưng hình như nó đã bị tắt. Tôi nhận ra điều đó khi tôi vào phần Tùy chọn hệ thống> Chung> Ứng dụng> Termux ----- và thấy rằng có một công tắc bật tắt để truy cập vào các tệp đã bị tắt bằng cách nào đó. Không cần phải nói - tôi bật lại và vấn đề đã được giải quyết. ------ Tất nhiên - cuộc khủng hoảng trước mắt đã kết thúc --- nhưng điều này vẫn đặt ra câu hỏi về nguyên nhân khiến nó bị tắt ngay từ đầu. (Tôi biết rằng tôi chưa bao giờ làm điều đó.)
user3080003

Tôi đã có cùng một vấn đề, và câu trả lời của bạn ở đây đã sửa nó cho tôi. EDIT: Nhập ngu ngốc để gửi. Đã cố gắng tạo ra một dòng mới. Đây là những gì tôi nghĩ đã xảy ra: Android 7 hiện cho phép từ chối quyền (yay!), Nhưng, trong trường hợp của Termux, vì bất kỳ lý do gì, nó không yêu cầu quyền như các chương trình khác làm. Vì vậy, vấn đề không phải là nó bị tắt bằng cách nào đó, nhưng không bao giờ được bật. Đây là suy đoán, mặc dù.
Andrew

3
Người ta có thể chạy termux-setup-Storage để tạo quyền lưu trữ yêu cầu ứng dụng. Xem termux.com/st Storage.html .
fornwall

Câu trả lời:



5

Các phiên bản Android mới hơn yêu cầu các ứng dụng yêu cầu cấp phép trong thời gian chạy. Bạn có thể đã nhận thấy điều này rồi. Một ví dụ là Chrome yêu cầu quyền Lưu trữ khi bạn cố tải xuống thứ gì đó lần đầu tiên. Đối với Termux, đây là một vấn đề. Quyền mặc định là "không được phép", do đó, khi Termux cần quyền cho một tác vụ, vì Termux chưa được cập nhật để yêu cầu các quyền này, thay vào đó, nó sẽ cố gắng thực hiện tác vụ và đưa ra lỗi. Thật không may, (các) nhà phát triển phải tự sửa lỗi này. Rất may, Android cung cấp cho bạn các cách để quản lý quyền ứng dụng theo cách thủ công. Cho đến khi nhà phát triển cập nhật Termux phù hợp, đây có lẽ là cách duy nhất.

Bước 1: Chuyển đến trang Thông tin ứng dụng của Termux

Có nhiều phương pháp để tiếp cận trang này. Bởi vì các điện thoại khác nhau có thể có các hành vi khác nhau, tôi bao gồm tất cả những người tôi biết.

Phương pháp 1: Sử dụng menu đa nhiệm

  1. Termux mở.
  2. Nhấn nút đa nhiệm để mở menu đa nhiệm. Điều này nên ở bên cạnh nút home bên trái.
  3. Trong danh sách các ứng dụng, Termux nên là người đầu tiên. Chạm và giữ vào biểu tượng của nó.

    Trên một số điện thoại, bạn sẽ có mặt ở trang thông tin. Trên các điện thoại khác, thay vào đó, bạn sẽ thấy thay đổi hộp điều ứng dụng của Termux ở trên cùng, với biểu tượng thông tin () xuất hiện ở đâu đó. Các điện thoại khác có thể cung cấp cho bạn menu ngữ cảnh với tùy chọn "Thông tin ứng dụng". Trong cả hai trường hợp, hãy nhấn vào đây.

Phương pháp 2: Sử dụng bảng thông báo

  1. Termux mở. Bạn muốn thông báo của Termux xuất hiện.
  2. Kéo bảng thông báo xuống và tìm thông báo của Termux.
  3. Hãy thử một trong những điều dưới đây:

    • Vuốt thông báo sang trái hoặc phải và tìm bánh xe răng cưa (⛭) hoặc biểu tượng thông tin (ℹ) và nhấn vào nó. Bạn không thể bỏ qua thông báo của Termux, vì vậy đừng lo lắng về điều đó.
    • Chạm và giữ thông báo và tìm kiếm một thiết bị (), biểu tượng thông tin (ℹ) hoặc menu ngữ cảnh với tùy chọn "Thông tin ứng dụng" và nhấn vào đó.
    • Tìm biểu tượng ứng dụng và / hoặc tên. Bạn có thể phải vuốt xuống thông báo. Chạm và giữ vào nó. Một bánh xe răng cưa (⛭), biểu tượng thông tin (ℹ) hoặc menu ngữ cảnh có thể bật lên. Nhấn cho phù hợp.

Phương pháp 3: Sử dụng Trình quản lý ứng dụng

  1. Chuyển đến cài đặt> ứng dụng.
  2. Tìm kiếm một tùy chọn có nhãn "Trình quản lý ứng dụng" hoặc tương tự. Nó dường như phụ thuộc vào thiết bị của bạn.
  3. Tìm mục của Termux và chạm vào nó. Bạn có thể phải thay đổi bộ lọc của mình thành "ứng dụng đã cài đặt" hoặc "ứng dụng đã tải xuống".

Bước 2: Thay đổi quyền

Bây giờ bạn sẽ ở trên một trang có tên, biểu tượng và số phiên bản của Termux với hai nút có nhãn "Gỡ cài đặt" và "Buộc dừng". bên dưới nó nên có nhiều lựa chọn khác.

  1. Tìm kiếm một tùy chọn có nhãn "Quyền" (bạn có thể cần phải cuộn). Chạm vào nó.
  2. Cần có một mục cho phép Lưu trữ. Bật nó lên bằng cách nhấp vào công tắc bên cạnh nó. Nếu quyền Lưu trữ không được liệt kê, hãy sử dụng lệnh liên quan đến lưu trữ trong Termux để nhận lỗi từ chối cấp phép và quay lại.

Kiểm tra sự thay đổi

Bây giờ bạn đã cấp quyền truy cập Termux vào bộ nhớ của bạn. Bạn có thể kiểm tra điều này bằng lệnh bên dưới:
ls /sdcard/
Nếu bạn không nhận được lỗi từ chối cấp phép, nó đã hoạt động! Bạn không cần phải làm điều này một lần nữa trừ khi bạn cài đặt lại Termux.


0

đó là tháng 7 năm 2017 và tôi đã gặp vấn đề tương tự, đã giải quyết vấn đề này và đã đến đây. Nhận xét của Matthew Read đã chỉ đường cho giải pháp, nhưng không có câu trả lời nào giải thích rõ ràng, vì vậy đây là tl; dr của nó:

Termux không yêu cầu quyền hệ thống tệp khi cài đặt, vì vậy bạn phải bật nó qua Cài đặt => Ứng dụng => Termux => Quyền

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.