Khi bạn sudo
, bạn nhận được một cấu hình sẵn $PATH
, đó là (được cho là) một cái gì đó giống như đường dẫn mặc định của người dùng gốc . Chương trình của bạn không nằm trong danh sách các thư mục được xác định bởi $PATH
.
Xem ví dụ
sudo cố gắng an toàn khi thực hiện các lệnh bên ngoài.
Có hai cách riêng biệt để đối phó với các biến môi trường. Theo mặc định,
tùy chọn env_reset
sudoers được bật. Đây nguyên nhân các lệnh được thực hiện với một môi trường tối thiểu chứa TERM
,
PATH
, HOME
, SHELL
, LOGNAME
, USER
và USERNAME
thêm vào các biến từ quá trình cách gọi phép của env_check
và env_keep
sudoers tùy chọn. Có một danh sách trắng cho các biến môi trường.
Nếu bạn không thể cấu hình sudo
để bảo vệ tài khoản của mình $PATH
, cách giải quyết thông thường là chỉ định tên đường dẫn đầy đủ của chương trình. Điều đó có thể không hoạt động tốt với các tập lệnh gọi các tệp thực thi khác trong thư mục (không truy cập).
cd
. Sử dụngdzdo cd
trả về "lệnh không tìm thấy". Tất nhiên sau đó tôi nhận ra rằngcd
ing vào một thư mục mà tôi không có quyền ở, sẽ không thể giúp ích rất nhiều, vì vậy tôi có cần một vỏ rễ hoặc nhu cầudzdo ls
,dzdo mv
vv các nội dung từ bên ngoài mà dir.