gpt4 book ai didi

rust - 如何确保在Linux上以root权限运行Rust可执行文件?

转载 作者:行者123 更新时间:2023-12-03 11:35:33 24 4
gpt4 key购买 nike

我想确保我的可执行文件在Linux下以root权限运行。我想出了这个:

use std::env;
use std::process::exit;

fn main() {
match env::var("USER") {
Err(e) => {
println!("Something went wrong: {:?}", e);
exit(2);
}
Ok(name) => {
if name != "root" {
println!("Must be root...");
exit(1);
}
}
}

println!("ok!");
}
有没有更简洁/惯用的方式来做到这一点?如何获得有效的用户ID(EUID)?

最佳答案

我发现的东西(以及 libcryptsetup-rs 中使用的东西)是这样的:

use nix::unistd::Uid;

fn main() {
if !Uid::effective().is_root() {
panic!("You must run this executable with root permissions");
}
}
是否 panic!println!exit由程序员决定。

关于rust - 如何确保在Linux上以root权限运行Rust可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62517543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com