ฉันต้องการเซิร์ฟเวอร์ SSH, HTTP และ SMB บนพอร์ตมาตรฐานในโทรศัพท์ของฉัน
มีวิธีการรัน Termux ในฐานะรูทและเซิร์ฟเวอร์รันบนพอร์ตที่มีสิทธิพิเศษหรือไม่?
การรัน Android 7.1 ที่รูทบนอุปกรณ์ที่ปลดล็อค
ฉันต้องการเซิร์ฟเวอร์ SSH, HTTP และ SMB บนพอร์ตมาตรฐานในโทรศัพท์ของฉัน
มีวิธีการรัน Termux ในฐานะรูทและเซิร์ฟเวอร์รันบนพอร์ตที่มีสิทธิพิเศษหรือไม่?
การรัน Android 7.1 ที่รูทบนอุปกรณ์ที่ปลดล็อค
คำตอบ:
ค่าเริ่มต้นsu
จาก Termux นั้นง่าย เมื่อเรียกใช้จะนำมา/system/bin/sh
ให้คุณแทนเชลล์ของ Termux (โดยทั่วไปbash
) เพื่อแก้ปัญหานี้คุณสามารถติดตั้ง su wrapper แบบกำหนดเองสำหรับ Termux โดย
apt ติดตั้ง tsu
จากนั้นคุณสามารถเรียกใช้tsu
เพื่อให้bash
ทุกสิ่งของคุณอยู่ภายใต้สิทธิ์ของรูท
ข้อมูลเพิ่มเติม:
ใช้เครื่องมือแก้ไข (เช่นvim
) เพื่อดู/data/data/com.termux/files/usr/bin/su
และคุณจะพบว่าที่บรรทัดที่ 10 เรียกexec su $@
ได้โดยตรงขณะอยู่ในtsu
นั้นทำการตรวจหาเชลล์และที่บรรทัด 80 รัน
exec su --preserve-environment -c "LD_LIBRARY_PATH = $ คำนำหน้า / lib $ ROOT_SHELL"
เพื่อรักษาสภาพแวดล้อมของ Termux
ฉันเพิ่งแก้ไขปัญหาเดียวกันสำหรับตัวเอง tsu ไม่ได้ผลสำหรับฉัน ฉันพบโครงการนี้: https://github.com/st42/termux-sudo
นอกจากนี้ฉันต้องการเรียกใช้ sshd เป็น root มันเป็นกล่องที่มี termux-sudo แต่ไม่ต้องการใช้ไฟล์ authorized_keys ในตอนแรกเพราะการอนุญาตให้ใช้งานและมันเป็นไดเรคทอรี่หลักที่ไม่ จำกัด การรูท (และบนอุปกรณ์ของฉันไดเรกทอรี / ไม่สามารถ จำกัด ได้ เพื่อรูท 700 เพราะซอฟต์แวร์ mediaplayer ไม่ทำงานอีกต่อไปด้วยเหตุผลบางอย่าง)
ดังนั้นฉันต้องเพิ่มตัวเลือกStrictModes no
ไปยังไฟล์ sshd config: /data/data/com.termux/files/usr/etc/ssh/sshd_config
และตอนนี้มันใช้งานได้! :)
เมื่อคุณรัน su มันจะนำคุณออกจาก termux subshell คุณสามารถลองใช้ SELinux ที่ได้รับอนุญาตนั่นคือวิธีที่ฉันได้รับอนุญาตในสิ่งที่ถูกปฏิเสธ