Tôi đang thực hiện các kiểm tra hiệu suất trên một hệ thống mà tôi cần đảm bảo rằng tôi đang đọc dữ liệu từ đĩa và không phải chỉ được lưu trong bộ nhớ cache (nói từ các bài kiểm tra trước đó). Tôi đọc here mà tôi có thể thả bộ nhớ cache bằng lệnhCho phép người dùng không phải root để xóa bộ nhớ cache
echo 3 | sudo tee /proc/sys/vm/drop_caches
Tuy nhiên, lưu ý rằng mặc dù tài khoản của tôi là tài khoản quản trị (đăng nhập peter), nó vẫn đòi hỏi mật khẩu của tôi. Tôi muốn có thể chạy điều này trong tập lệnh theo lô mà không cần nhập mật khẩu (vì đây rõ ràng là thủ công)
Thêm research dẫn tôi đến tệp sudoers. Kế hoạch của tôi là đặt lệnh trên vào một dòng lệnh có tên là dropCache và chỉnh sửa sudoers để tôi có thể chạy nó mà không cần nhập mật khẩu. Vì vậy, tôi đã thêm dòng
ALL ALL=(ALL)NOPASSWD:/home/peter/dropCache
vào cuối tệp sudoers của tôi (sử dụng visudo). Với tài khoản quản trị của tôi, nếu tôi chạy
sudo -l
tôi nhận được
(ALL) NOPASSWD: /home/peter/dropCache
Tuy nhiên, nếu tôi chạy script dropCache của tôi, tôi vẫn nhận được yêu cầu nhập mật khẩu của tôi
./dropCache
[sudo] password for peter:
Bất kỳ sự giúp đỡ với điều này sẽ được nhiều đánh giá cao. Tôi đang chạy Ubuntu 12.04
Cảm ơn Peter
Hi Thomas - mát - hãy để tôi cung cấp cho nó một thử và lấy lại cho bạn! –
Đã hoạt động! Cảm ơn Thomas - bạn xứng đáng với điểm số danh tiếng cao của bạn –
Điều này thực thi là một nguy cơ bảo mật - bạn không đặt PATH của bạn và chạy một lệnh bên ngoài mà không có một tên đường dẫn tuyệt đối. Bạn chỉ có thể gọi hệ thống sync() gọi trực tiếp thay vì chạy lệnh đồng bộ bên ngoài. –