4 个稳定版本
| 1.1.2 | 2024年1月4日 |
|---|---|
| 1.1.1 | 2024年1月3日 |
| 1.1.0 | 2024年1月2日 |
| 1.0.0 | 2024年1月2日 |
#6 in #necessary
747 每月下载量
35KB
278 代码行
elevated-command
使用 sudo 运行命令,如必要,则通过图形化操作系统对话框提示用户。适用于需要 sudo 的后台 Rust 应用或原生 Tauri 应用。
跨平台
elevated-command 在 Windows、Linux 和 MacOS 上提供原生操作系统对话框提示。



示例
将以下内容添加到您的 Cargo.toml 中
[dependencies]
elevated-command = "1.1"
在您的 main.rs 中
use elevated_command::Command;
use std::process::Command as StdCommand;
fn main() {
let is_elevated = Command::is_elevated();
let mut cmd = StdCommand::new("path to the application");
cmd.arg("some arg");
let output = if is_elevated {
cmd.output().unwrap()
} else {
let elevated_cmd = Command::new(cmd);
elevated_cmd.output().unwrap()
};
}
注意:应用不应以 sudo 运行。
要开始使用 elevated-command,请参阅 API 参考 (docs.rs)。
行为
在 Windows 上,elevated-command 将使用用户账户控制 (UAC) 提升您的命令。
在 Linux 上,elevated-command 将使用 pkexec 显示密码提示并运行您的命令。
在 MacOS 上,elevated-command 的行为应与 shell 中的 sudo 命令类似。
参考
- jorangreef/sudo-prompt
- https://stackoverflow.com/questions/8046097/how-to-check-if-a-process-has-the-administrative-rights/8196291#8196291
- https://fix.moe/post/macos-app-authorization
许可证
在 MIT 许可证下发布。
依赖项
~0.1–36MB
~527K SLoC