Tôi đã tạo một bin
thư mục trong thư mục nhà của tôi, nơi tôi đặt tất cả các tập lệnh của mình. Sau đó, trong .bashrc của tôi, tôi đã thêm vào như sau:
export PATH=$PATH:/home/myusername/bin
Vì vậy, tôi có thể truy cập các tập tin tôi đặt ở đó từ bất cứ đâu. Nhưng một số kịch bản cần phải được thực thi như root. Vì vậy, tôi nghĩ rằng, tôi có thể symlink Tôi chỉ có thể làm:
sudo program_that_requires_root
Nhưng sau đó tôi nhận được một:
sudo: program_that_requires_root: command not found
Nếu tôi đăng nhập bằng root và thực thi chương trình, nó vẫn hoạt động tốt. Vì vậy, cách chính xác để thực hiện những gì tôi muốn là gì?
/etc/sudoers
và tìm dòng này: Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
(đường dẫn có thể thay đổi) - nếu bạn thêm bin
đường dẫn người dùng của mình , nó sẽ hoạt động. (Có lẽ giải pháp đó không được khuyến khích vì những lý do khác; tôi không biết.) Ồ, trong tệp được đề cập, nó nói rằng bạn không nên thay đổi nó, nhưng tôi đã làm, và nó hoạt động rất tốt, ít nhất là về những gì tôi đã cố gắng để đạt được (có cùng một vấn đề như bạn).
sudo
có thể là sử dụngsecure_path
thay vì của bạn$PATH
. Chạysudo -V
dưới dạng root (ví dụsudo sudo -V
) và tìm kiếm các dòng có chứaPATH
.