Có cách nào để chỉ định rằng chỉ sudo
nên bảo tồn các biến môi trường nhất định cho các lệnh được chỉ định không? Đối với một số mục đích tôi muốn $HOME
env của tôi . biến được bảo tồn khi tôi chạy các lệnh nhất định. Đối với các mục đích khác và các lệnh khác, tôi muốn nó thiết lập lại. Điều này có thể được thực hiện với /etc/sudoers
?
Chỉnh sửa:
cảm ơn về những câu trả lời. Tôi tự hỏi nếu tôi có thể hỏi một câu hỏi tiếp theo, đó là "Tại sao, sau đó, điều này không hoạt động?"
Trong ví dụ tôi đang cố gắng để làm việc, tôi muốn sudo nano
đọc của tôi $HOME/.nanorc
. Nếu tôi sử dụng điều này:
Defaults:simon env_keep=HOME
nó hoạt động hoàn hảo. Nếu tôi sử dụng điều này:
Defaults!/bin/nano env_keep=HOME
hoặc này:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
nó hoàn toàn không hoạt động. Bất kỳ đề nghị như tại sao? (Tôi đang thử nghiệm Debian, btw.)
(Lưu ý: Tôi không nghĩ nó nano
cụ thể, btw - Tôi có thể tái tạo hành vi bằng một tập lệnh bash một dòng chỉ đơn giản là echo
s $HOME
).
sudo
một chức năng của riêng mình, tôi chỉ cần thêm một if [ "$1" == "$EDITOR" ]; then
khối và hiện đang gọi sudoedit
thay thế :)
sudoedit
thay thế.sudoedit
sẽ chạy sao chép nội dung của tệp vào tệp tmp và chạy trình soạn thảo bạn chọn với tư cách là người dùng của bạn, khi trình chỉnh sửa thoát, nó sẽ kiểm tra xem bạn có thay đổi gì không và nếu thay thế bản gốc bằng tệp đã chỉnh sửa. Bạn có thể chọn trình soạn thảo nào bạn muốn nó chạy bằng cách đặt$EDITOR
hoặc vars $ VISUAL` env.