use std::fs::OpenOptions;
use std::io::Write;
fn main() {
let mut source_list = OpenOptions::new()
.write(true)
.append(true)
.open("/usr/local/etc/apt/sources.list")
.unwrap();
if let Err(e) = writeln!(source_list, "{}", "deb ".to_owned() + "https://www.google.com/" + " ./") {
eprintln!("Couldn't write to file: {}", e);
}
}
При запуске этого кода без sudo он выдает:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', src/libcore/result.rs:999:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
, а при запуске этого кода с помощью sudo запрашивает мой пароль, а затем успешно записывает в файл, поэтому мой вопрос: как мне это сделать?заставить его спросить у меня мой пароль, а затем успешно записать в файл без необходимости использования sudo (в основном, как заставить его запускать sudo для пользователя, чтобы он не должен был это делать)?