这是 pkexec 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pkexec - 以另一个用户身份执行命令
概要
可执行文件 [- 版[--禁用内部代理[ - 帮帮我]
可执行文件 [- 用户 用户名] 课程 [争论...]
商品描述
可执行文件 允许授权用户执行 课程 作为另一个用户。 如果 用户名 是不是
指定,那么程序将作为管理超级用户执行, 根.
返回 VALUE
成功完成后,返回值为 课程。 如果
调用进程未授权或无法获得授权
身份验证或发生错误, 可执行文件 以 127 的返回值退出。如果
由于用户关闭了身份验证对话框,因此无法获得授权,
可执行文件 退出,返回值为 126。
认证 留学招生代理
可执行文件,像任何其他 PolicyKit 应用程序一样,将使用注册的身份验证代理
对于调用过程。 但是,如果没有可用的身份验证代理,则 可执行文件
将注册自己的文本身份验证代理。 可以通过以下方式关闭此行为
通过 --禁用内部代理 选项。
保安 附注
以另一个用户身份执行程序是一种特权操作。 默认情况下需要
授权(请参阅“必需的授权”部分)需要管理员
验证。 此外,呈现给用户的身份验证对话框将显示
要执行的程序的完整路径,以便用户知道会发生什么:
[图片][1]
+------------------------------------------------- ---------+
| 验证 [X] |
+------------------------------------------------- ---------+
| |
| [图标] 需要身份验证才能运行`/ bin / bash'|
| 作为超级用户 |
| |
| 应用程序正在尝试执行 |
| 需要特权的操作。 认证 |
| 因为执行此操作需要超级用户 |
| 行动。 |
| |
| 根密码:[_________________________] |
| |
| [V] 详情: |
| 命令: / bin / bash |
| 运行身份:超级用户(root)|
| 行动:org.freedesktop.policykit.exec |
| 供应商:PolicyKit 项目 |
| |
| [取消] [验证] |
+------------------------------------------------- ---------+
那个环境 课程 将运行它,将设置为最小已知和安全
环境以避免通过 LD_LIBRARY_PATH 或类似方式注入代码
机制。 此外,PKEXEC_UID 环境变量设置为
进程调用 可执行文件。 其结果是, 可执行文件 将不允许您将 X11 应用程序作为
另一个用户,因为 $DISPLAY 和 $XAUTHORITY 环境变量未设置。 这些
两个变量将被保留,如果 org.freedesktop.policykit.exec.allow_gui 注解
一个动作被设置为一个非空值; 但是,这是不鼓励的,并且应该只
用于遗留程序。
所需 授权
默认情况下, org.freedesktop.policykit.exec 除非采取行动,否则需要授权
存在相关程序的定义文件。 需要另一项授权,
可以使用 org.freedesktop.policykit.exec.path 动作注释
(有关详细信息,请参阅“示例”部分)。
例
指定执行程序需要什么样的授权
/usr/bin/pk-example-frobnicate 作为另一个用户,简单写一个动作定义文件
喜欢这个
<!DOCTYPE 策略配置 PUBLIC
"-//freedesktop//DTD PolicyKit 策略配置 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
PolicyKit 项目的示例
http://hal.freedesktop.org/docs/PolicyKit/
运行 PolicyKit 示例程序 Frobnicate
Kør PolicyKit eksemplet Frobnicate
需要身份验证才能运行 PolicyKit 示例程序 Frobnicate (user=$(user), program=$(program), command_line=$(command_line))
Autorisering er påkrævet for at afvikle PolicyKit eksemplet Frobnicate (user=$(user), program=$(program), command_line=$(command_line))
音频-x-通用
不
不
auth_self_keep
/usr/bin/pk-example-frobnicate
并将其放入 / usr / share / polkit-1 /操作 合适名称下的目录(例如
匹配操作的命名空间)。 请注意,除了指定程序外,
可以指定身份验证消息、描述、图标和默认值。 注意
消息中字符串 $(user)、$(program) 和 $(command_line) 的出现将是
分别替换为用户(形式为“真实姓名(用户名)”或仅“用户名”)
如果用户名没有真实姓名),要执行的二进制文件(一个完全限定的路径,
例如“/usr/bin/pk-example-frobnicate”)和命令行,例如“pk-example-frobnicate”
foo bar”。例如,对于上面定义的动作,下面的身份验证对话框
将显示:
[图片][2]
+------------------------------------------------- ---------+
| 验证 [X] |
+------------------------------------------------- ---------+
| |
| [图标] 运行PolicyKit 需要身份验证|
| 示例程序 Frobnicate |
| |
| 应用程序正在尝试执行 |
| 需要特权的操作。 认证 |
| 需要执行此操作。 |
| |
| 密码:[__________________________________] |
| |
| [V] 详情: |
| 命令:/usr/bin/pk-example-frobnicate |
| 运行身份:超级用户(root)|
| 行动:org.fd.pk.example.pkexec.run-frobnicate |
| 供应商:PolicyKit 项目示例 |
| |
| [取消] [验证] |
+------------------------------------------------- ---------+
如果用户使用 da_DK 语言环境,则对话框如下所示:
[图片][3]
+------------------------------------------------- ---------+
| 自动提升 [X] |
+------------------------------------------------- ---------+
| |
| [图标] Autorisering er påkrævet for at afvikle |
| PolicyKit eksemplet
| |
| Et program forsøger at udføre en 处理 der |
| kræver 特权。 Autorisering er påkrævet。 |
| |
| Kodeord:[___________________________________] |
| |
| [V] 德塔尔杰: |
| Bruger:超级用户(root)|
| 程序:/usr/bin/pk-example-frobnicate |
| 处理:org.fd.pk.example.pkexec.run-frobnicate |
| 供应商:PolicyKit 项目示例 |
| |
| [Annulér] [Autorising] |
+------------------------------------------------- ---------+
需要注意的是 可执行文件 不验证 争论 传递给 课程. 在正常情况下
(每次都需要管理员身份验证 可执行文件 被使用),这不是
问题,因为如果用户是管理员,他不妨直接运行 可执行文件 打坏 要得到
根。
但是,如果使用用户可以保留授权的操作(或者如果用户
被隐式授权),例如上面的 pk-example-frobnicate,这可能是一个
安全漏洞。 因此,根据经验,需要默认设置的程序
授权已更改,不应隐式信任用户输入(例如,像任何其他
写得好 SUID 程序)。
使用 onworks.net 服务在线使用 pkexec