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