Debian (buster) su không hoạt động đúng, không tìm thấy lệnh


0
  • Ví dụ: Tôi đã cài đặt ifconfig
  • Đầu tiên tôi trở thành root với "su"
  • Bây giờ tôi viết "ifconfig" và nhận: "không tìm thấy lệnh".
  • Tôi viết "sudo ifconfig" và bây giờ nó hoạt động.

Điều này dường như xảy ra với rất nhiều chương trình (không phải tất cả).

Một ví dụ khác: apt-get dường như không cài đặt đúng ứng dụng nếu tôi không sử dụng cùng một phương pháp.

Tôi không cần phải viết sudo nếu tôi đã root.

Tại sao vậy? Tôi có thể làm gì để sữa nó?

Câu trả lời:


3

TL, DR: Sử dụng su --login hoặc là sudo.


Debian đặt khác PATH cho người dùng thường xuyên. Trong /etc/profile, bạn có thể thấy rằng dự trữ mặc định /sbin cho gốc:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

type ifconfig cho biết tiện ích nằm ở /sbin/ifconfig đó là lý do tại sao người dùng thường xuyên không thể truy cập nó dễ dàng. Khi bạn chạy su không có đối số, môi trường của người dùng được bảo tồn, bao gồm cả PATH biến. sudomặt khác, cung cấp một môi trường trong lành và ghi đè người gọi PATH.


Lý do tại sao bạn tin su bị trục trặc là vì đặt lại PATHIFS theo mặc định là hành vi kế thừa. buster gần đây đã chuyển sang util-linux thực hiện su mà hoạt động khác nhau; xem /usr/share/doc/util-linux/NEWS.Debian.gz để biết chi tiết.


1
Hoặc đơn giản /sbin/ifconfig không có sudo cũng không su
GAD3R
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.