Câu trả lời:
Mặc định su
từ Termux rất đơn giản. Khi chạy, nó mang lại /system/bin/sh
cho bạn thay vì vỏ của Termux (thông thường bash
). Để giải quyết vấn đề này, bạn có thể cài đặt trình bao bọc tùy chỉnh cho Termux bằng cách
cài đặt apt
Và sau đó bạn có thể chạy tsu
để bash
tất cả mọi thứ của bạn đều thuộc quyền root.
Thông tin khác:
Sử dụng trình chỉnh sửa (như vim
) để xem /data/data/com.termux/files/usr/bin/su
và bạn sẽ thấy rằng ở dòng 10, nó gọi exec su $@
trực tiếp trong khi vào tsu
, nó thực hiện phát hiện shell và ở dòng 80, nó chạy
exec su --preserve-môi trường -c "LD_LIBRARY_PATH = $ PREFIX / lib $ ROOT_SHELL"
để bảo vệ môi trường Termux.
Tôi chỉ giải quyết vấn đề tương tự cho chính mình. Tsu đã không làm việc cho tôi. Tôi tìm thấy dự án này: https://github.com/st42/termux-sudo
Ngoài ra tôi muốn chạy sshd với quyền root. Nó không có trong danh sách với termux-sudo nhưng ban đầu nó không muốn sử dụng tệp ủy quyền, bởi vì các quyền đối với nó và tất cả các thư mục mẹ không bị hạn chế đối với root (và trên thiết bị của tôi, thư mục / không thể bị hạn chế đến root 700, vì sau đó phần mềm mediaplayer không hoạt động nữa vì một số lý do).
Vì vậy, tôi đã phải thêm tùy chọn StrictModes no
vào tệp cấu hình sshd: /data/data/com.termux/files/usr/etc/ssh/sshd_config
và bây giờ nó hoạt động! :)
Khi bạn chạy su, nó sẽ đưa bạn ra khỏi subshell termux. Bạn có thể dùng thử Selinux cho phép, đó là cách tôi vượt qua sự cho phép.