ฉันต้องการเซิร์ฟเวอร์ 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 ที่ได้รับอนุญาตนั่นคือวิธีที่ฉันได้รับอนุญาตในสิ่งที่ถูกปฏิเสธ