Có vẻ như lỗi này đã xuất hiện khá lâu! Dưới đây là một số tài liệu tham khảo lỗi bạn có thể thấy hữu ích (và có thể muốn đăng ký / bỏ phiếu, gợi ý, gợi ý ...):
Lỗi Debian # 85123 ("sudo: SECURE_PATH vẫn không thể bị ghi đè") (từ năm 2001!)
Có vẻ như Bug # 20996 vẫn có mặt trong phiên bản sudo này. Thay đổi nói rằng nó có thể bị ghi đè khi chạy nhưng tôi chưa khám phá ra làm thế nào.
Họ đề cập đến việc đưa một cái gì đó như thế này vào tập tin sudoers của bạn:
Defaults secure_path="/bin:/usr/bin:/usr/local/bin"
nhưng ít nhất khi tôi làm điều đó trong Ubuntu 8.10, nó sẽ báo lỗi này:
visudo: unknown defaults entry `secure_path' referenced near line 10
Lỗi Ubuntu # 50797 ("sudo được xây dựng với - với đường dẫn an toàn là có vấn đề")
Tệ hơn nữa, theo như tôi có thể nói, không thể xác nhận lại Secure_path trong tệp sudoers. Vì vậy, nếu, ví dụ, bạn muốn cung cấp cho người dùng của mình quyền truy cập dễ dàng vào nội dung / opt, bạn phải biên dịch lại sudo.
Đúng. Có cần phải là một cách để ghi đè lên "tính năng" này mà không cần phải biên dịch lại. Không có gì tệ hơn sau đó các nhóm bảo mật cho bạn biết những gì tốt nhất cho môi trường của bạn và sau đó không cung cấp cho bạn cách tắt nó.
Điều này thực sự gây phiền nhiễu. Có thể là khôn ngoan để giữ hành vi hiện tại theo mặc định vì lý do bảo mật, nhưng nên có cách ghi đè lên nó ngoài việc biên dịch lại từ mã nguồn! Nhiều người đang cần thừa kế PATH. Tôi tự hỏi tại sao không có người bảo trì nhìn vào nó, có vẻ dễ dàng đưa ra một giải pháp chấp nhận được.
Tôi đã làm việc xung quanh nó như thế này:
mv /usr/bin/sudo /usr/bin/sudo.orig
sau đó tạo một tập tin / usr / bin / sudo chứa các mục sau:
#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"
sau đó sudo thông thường của bạn hoạt động giống như sudo không bảo mật
Lỗi Ubuntu # 192651 ("đường dẫn sudo luôn được đặt lại")
Cho rằng một bản sao của lỗi này ban đầu được nộp vào tháng 7 năm 2006, tôi không rõ một env_keep không hiệu quả đã hoạt động được bao lâu. Bất kể giá trị nào của việc buộc người dùng sử dụng các thủ thuật như được liệt kê ở trên, chắc chắn các trang dành cho sudo và sudoers sẽ phản ánh thực tế rằng các tùy chọn để sửa đổi PATH có hiệu quả.
Sửa đổi tài liệu để phản ánh thực thi thực tế là không ổn định và rất hữu ích.
Lỗi Ubuntu # 226595 ("không thể giữ lại / chỉ định PATH")
Tôi cần có khả năng chạy sudo với các thư mục nhị phân không phải tiêu chuẩn bổ sung trong PATH. Khi đã thêm các yêu cầu của tôi vào / etc / môi trường, tôi rất ngạc nhiên khi tôi gặp lỗi về các lệnh bị thiếu khi chạy chúng dưới sudo .....
Tôi đã thử cách sau để khắc phục điều này mà không thành công:
Sử dụng sudo -E
tùy chọn "" - không hoạt động. PATH hiện tại của tôi vẫn được đặt lại bởi sudo
Thay đổi " Defaults env_reset
" thành " Defaults !env_reset
" trong / etc / sudoers - cũng không hoạt động (ngay cả khi kết hợp với sudo -E)
Uncommenting env_reset
(ví dụ " #Defaults env_reset
") trong / etc / sudoers - cũng không hoạt động.
Thêm ' Defaults env_keep += "PATH"
' vào / etc / sudoers - cũng không hoạt động.
Rõ ràng - mặc dù tài liệu hướng dẫn - sudo hoàn toàn được mã hóa liên quan đến PATH và không cho phép bất kỳ sự linh hoạt nào liên quan đến việc giữ lại người dùng PATH. Rất khó chịu vì tôi không thể chạy phần mềm không mặc định dưới quyền root bằng sudo.