ไม่มีสิทธิ์อนุญาตสำหรับ Termux ในการเข้าถึงที่เก็บข้อมูลภายใน - แม้สำหรับการอ่าน


19

การใช้โปรแกรมtermux ( https://termux.com ) เทอร์มินัลอีมูเลชันฉันพิมพ์คำสั่งต่อไปนี้:

ls /sdcard

ฉันได้รับข้อผิดพลาดต่อไปนี้:

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

เมื่อตระหนักว่าไดเร็กทอรี/ sdcardบน Android เป็น symlink ฉันพยายามค้นหาตำแหน่งของไดเรกทอรีจริงโดยเรียนรู้ว่ามันไม่ใช่แค่ symlink แต่เป็น symlink ไปยัง symlink อื่นและไดเรกทอรีจริงคือ/ 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และใครรู้อะไรอื่น - เพราะฉันต้องสามารถเข้าถึงไฟล์ที่เป็น บนการ์ด SD ของฉัน (ฉันยังสามารถทำอะไรได้หลายอย่างแม้ว่าจะไม่ใช่ทุกอย่างแม้จะไม่มีสิทธิ์เขียน แต่ฉันติดอยู่ในน้ำได้ถ้าฉันไม่สามารถอ่านการอนุญาตได้อย่างที่เป็นอยู่ในปัจจุบัน)


อืมดูเหมือนว่ามีREAD_EXTERNAL_STORAGEสิทธิ์ดังนั้นควรมีการเข้าถึง
Matthew อ่าน

3
ใช่ --- แต่เห็นได้ชัดว่ามันถูกปิด ฉันรู้ว่าเมื่อฉันไปในการตั้งค่าระบบ> ทั่วไป> แอปพลิเคชั่น> Termux ----- และพบว่ามีสวิตช์สลับสำหรับการเข้าถึงไฟล์ที่ปิดไปแล้ว ไม่จำเป็นต้องพูด - ฉันเปิดเครื่องใหม่และปัญหาได้รับการแก้ไขแล้ว ------ แน่นอน - วิกฤตการณ์ในทันทีนั้นจบสิ้น --- แต่ทั้งหมดนี้ยังทำให้เกิดคำถามว่าอะไรที่ทำให้มันถูกปิดในตอนแรก (ฉันรู้ว่าฉันไม่เคยทำอย่างนั้น)
user3080003

ฉันมีปัญหาเดียวกันและคำตอบของคุณที่นี่แก้ไขให้ฉัน แก้ไข: โง่ป้อนเพื่อส่ง กำลังพยายามสร้างบรรทัดใหม่ นี่คือสิ่งที่ฉันคิดว่าเกิดขึ้น: Android 7 ตอนนี้อนุญาตการปฏิเสธการอนุญาต (yay!) แต่ในกรณีของ Termux ไม่ว่าด้วยเหตุผลใดก็ตามมันไม่ขออนุญาตเหมือนโปรแกรมอื่น ๆ ทำ ดังนั้นปัญหาไม่ใช่ว่ามันถูกปิดอย่างใด แต่ก็ไม่เคยเปิด นี่คือการเก็งกำไรแม้ว่า
Andrew

3
หนึ่งสามารถเรียกใช้ termux-setup-storage เพื่อให้สิทธิ์ในการจัดเก็บคำขอแอป ดูtermux.com/storage.html
fornwall

คำตอบ:



5

Android เวอร์ชันที่ใหม่กว่าจำเป็นต้องมีแอพเพื่อขออนุญาตในระหว่างการใช้งานจริง คุณอาจสังเกตเห็นสิ่งนี้แล้ว ตัวอย่างหนึ่งคือ Chrome จะขอสิทธิ์พื้นที่เก็บข้อมูลเมื่อคุณพยายามดาวน์โหลดบางอย่างเป็นครั้งแรก สำหรับ Termux นี่เป็นปัญหา การอนุญาตเริ่มต้นเป็น "ไม่ได้รับอนุญาต" ดังนั้นเมื่อ Termux ต้องการการอนุญาตสำหรับงานเนื่องจาก Termux ไม่ได้รับการอัพเดตเพื่อขอการอนุญาตเหล่านี้มันจะพยายามดำเนินการแทนและพยายามส่งผลให้เกิดข้อผิดพลาดแทน น่าเสียดายที่นักพัฒนาซอฟต์แวร์ต้องแก้ไขด้วยตัวเอง โชคดีที่ Android ให้วิธีในการจัดการการอนุญาตแอพด้วยตนเอง จนกว่าผู้พัฒนาจะอัปเดต Termux ให้สอดคล้องกันนี่อาจเป็นวิธีเดียวเท่านั้น

ขั้นตอนที่ 1: ไปที่หน้าข้อมูลแอปของ Termux

มีหลายวิธีในการเข้าถึงหน้านี้ เนื่องจากโทรศัพท์ที่แตกต่างกันสามารถมีพฤติกรรมที่แตกต่างกันได้ฉันจึงรวมโทรศัพท์ทั้งหมดที่ฉันรู้จัก

วิธีที่ 1: การใช้เมนูมัลติทาสก์

  1. เปิด Termux
  2. กดปุ่มมัลติทาสก์เพื่อเปิดเมนูมัลติทาสก์ ควรอยู่ถัดจากปุ่มโฮมทางด้านซ้าย
  3. ในรายการแอปพลิเคชัน Termux ควรเป็นรายการแรก แตะที่ไอคอนค้างไว้

    ในโทรศัพท์บางรุ่นคุณจะอยู่ที่หน้าข้อมูล สำหรับโทรศัพท์อื่นคุณจะเห็นการเปลี่ยนแปลงของกล่องแอพที่ด้านบนแทนโดยมีไอคอนข้อมูล (ℹ) ปรากฏที่ใดที่หนึ่ง โทรศัพท์อื่น ๆ อาจให้เมนูบริบทพร้อมตัวเลือก "ข้อมูลแอพ" ในทั้งสองกรณีให้แตะเหล่านี้

วิธีที่ 2: การใช้แผงการแจ้งเตือน

  1. เปิด Termux คุณต้องการให้การแจ้งเตือนของ Termux ปรากฏขึ้น
  2. ดึงแผงการแจ้งเตือนลงและค้นหาการแจ้งเตือนของ Termux
  3. ลองหนึ่งในด้านล่าง:

    • ปัดการแจ้งเตือนไปทางซ้ายหรือขวาแล้วมองหาฟันเฟือง (⛭) หรือไอคอนข้อมูล (ℹ) แล้วแตะ คุณไม่สามารถยกเลิกการแจ้งเตือนของ Termux ได้ดังนั้นอย่ากังวลไป
    • แตะที่การแจ้งเตือนค้างไว้แล้วมองหาเฟือง (⛭) ไอคอนข้อมูล (ℹ) หรือเมนูบริบทที่มีตัวเลือก "ข้อมูลแอพ" แล้วแตะ
    • มองหาไอคอนแอพและ / หรือชื่อ คุณอาจต้องปัดลงในการแจ้งเตือน แตะค้างไว้ ล้อฟันเฟือง (⛭), ไอคอนข้อมูล (ℹ) หรือเมนูบริบทอาจปรากฏขึ้น แตะตามนั้น

วิธีที่ 3: การใช้ตัวจัดการแอป

  1. ไปที่การตั้งค่า> แอพ
  2. มองหาตัวเลือกที่ชื่อว่า "Application Manager" หรือที่คล้ายกัน ดูเหมือนว่าจะขึ้นอยู่กับอุปกรณ์ของคุณ
  3. ค้นหารายการของ Termux และแตะ คุณอาจต้องเปลี่ยนตัวกรองของคุณเป็น "แอพที่ติดตั้ง" หรือ "แอพที่ดาวน์โหลด"

ขั้นตอนที่ 2: การเปลี่ยนการอนุญาต

ตอนนี้คุณควรจะอยู่ในหน้าที่มีชื่อไอคอนและหมายเลขเวอร์ชันของ Termux ด้วยปุ่มสองปุ่มที่ระบุว่า "ถอนการติดตั้ง" และ "บังคับหยุด" ด้านล่างควรเป็นตัวเลือกอื่น ๆ

  1. มองหาตัวเลือกที่ชื่อว่า "สิทธิ์" (คุณอาจต้องเลื่อน) แตะที่มัน
  2. ควรมีรายการสำหรับสิทธิ์ในการจัดเก็บ เปิดใช้งานโดยคลิกที่สวิตช์ด้านข้าง หากไม่มีสิทธิ์ในการจัดเก็บข้อมูลอยู่ในรายการให้ใช้คำสั่งที่เกี่ยวข้องกับการจัดเก็บใน Termux เพื่อรับข้อผิดพลาดถูกปฏิเสธสิทธิ์และกลับมา

ทดสอบการเปลี่ยนแปลง

ตอนนี้คุณได้อนุญาตให้ Termux เข้าถึงที่เก็บข้อมูลของคุณ คุณสามารถทดสอบสิ่งนี้ด้วยคำสั่งด้านล่าง:
ls /sdcard/
หากคุณไม่ได้รับข้อผิดพลาดถูกปฏิเสธสิทธิ์ใช้งานได้! คุณไม่จำเป็นต้องทำเช่นนี้อีกหากไม่ได้ติดตั้ง Termux อีกครั้ง


0

มันคือเดือนกรกฎาคมปี 2017 & ฉันมีปัญหาเดียวกันนี้ googled สำหรับมัน & มาถึงที่นี่ ความคิดเห็นของแมทธิวอ่านชี้ไปที่วิธีการแก้ปัญหา แต่ไม่มีคำตอบที่ชัดเจนออกมาดังนั้นนี่คือ tl; dr of it:

Termux ไม่ได้ขออนุญาตระบบไฟล์ในการติดตั้งดังนั้นคุณต้องเปิดผ่านการตั้งค่า => Applications => Termux => สิทธิ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.