1 | pkexec
|
2 | ===
|
3 |
|
4 | 以其他用户身份执行命令
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **pkexec** 允许授权用户以另一个用户的身份执行 PROGRAM。如果未指定
|
9 | PROGRAM,则将运行默认 shell。如果未指定用户名,则程序将以管理超级用户 root
|
10 | 的身份执行。
|
11 |
|
12 | ### 语法
|
13 |
|
14 | ```shell
|
15 | pkexec [--version] [--disable-internal-agent] [--help]
|
16 | pkexec [--keep-cwd] [--user username] PROGRAM [ARGUMENTS...]
|
17 | ```
|
18 |
|
19 | ### 选项
|
20 |
|
21 | ```shell
|
22 | PROGRAM 运行的程序
|
23 | ARGUMENTS... 传递给程序的参数
|
24 |
|
25 | --version 输出版本号然后退出
|
26 | --disable-internal-agent 避免将注册自己的文本身份验证代理
|
27 | --help 输出帮助文本然后退出
|
28 | --keep-cwd 运行位置,默认在 /home/<username>/
|
29 | --user <username> 需要运行的用户名
|
30 | ```
|
31 |
|
32 | ### 返回值
|
33 |
|
34 | 成功完成后,返回值为 PROGRAM 的返回值。
|
35 |
|
36 | - `127`: 在未获得授权或者身份验证发生错误
|
37 | - `126`: 用户关闭身份验证对话框而无法获得授权
|
38 |
|
39 | ### 示例
|
40 |
|
41 | 1. 运行具有管理员权限的命令:
|
42 |
|
43 | ```
|
44 | pkexec command
|
45 | ```
|
46 |
|
47 | 将 `command` 替换为你要以管理员权限运行的命令。例如,`pkexec ls` 将以管理员权限运行 `ls` 命令。
|
48 |
|
49 | 2. 以图形界面运行具有管理员权限的命令:
|
50 |
|
51 | ```
|
52 | pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY command
|
53 | ```
|
54 |
|
55 | 这个命令用于在图形界面中运行需要管理员权限的命令。将 `command` 替换为你要以管理员权限运行的命令。
|
56 |
|
57 | 3. 运行具有特定身份验证代理的命令:
|
58 |
|
59 | ```
|
60 | pkexec --user username command
|
61 | ```
|
62 |
|
63 | 将 `username` 替换为你要作为哪个用户运行命令的用户名,将 `command` 替换为你要运行的命令。
|
64 |
|
65 | 4. 查看 `pkexec` 的帮助信息:
|
66 |
|
67 | ```
|
68 | pkexec --help
|
69 | ```
|
70 |
|
71 | 这个命令将显示 `pkexec` 的使用说明和选项列表。
|
72 |
|
73 | 请注意,使用 `pkexec` 运行命令时,系统会提示你输入管理员密码进行身份验证。确保只在必要时使用 `pkexec` 来运行需要管理员权限的命令,并小心谨慎地处理管理员权限。
|
74 |
|
75 | ### 参考资料
|
76 |
|
77 | - https://man.archlinux.org/man/pkexec.1.en
|