手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

pfexec (1)

名称

pfexec , pfbash , pfcsh , pfksh , pfsh , pftcsh , pfzsh - 执行配置文件中的命令

用法概要

/usr/bin/pfexec command
/usr/bin/pfexec -P privspec
 command [ arg ]...
/usr/bin/pfsh [ options ] [ 
argument ]...
/usr/bin/pfcsh [ options ] [ 
argument ]...
/usr/bin/pfksh [ options ] [ 
argument ]...

描述

pfexec 程序可设置 PRIV_PFEXEC 进程标志,并将当前进程标记为配置文件 shell。然后,它执行指定的命令。内核将查询 exec_attr(4) 数据库,并通过相应的属性执行。

搜索配置文件时会按照 user_attr(4) 数据库和 policy.conf(4) 中用户条目指定的顺序。对于每个用户,共有两组配置文件,即已验证集和未验证集。如果命令与已验证配置文件集对应的 exec_attr(4) 数据库中的条目匹配,用户在执行这些命令之前需要重新进行验证。如果从终端执行命令,系统会缓存当前用户和 tty 的验证状态,但该验证状态会受到为 PAM 堆栈 /etc/pam.d/pfexec 中的 pam_tty_tickets(5) 设置的超时选项的影响。如果当前没有 tty,但存在活动的 X11 会话,系统会通过 zenity 对话框提示用户进行验证。系统会为当前用户和 DISPLAY 环境设置缓存此验证状态。成功通过重新验证的进程(包括在缓存的超时值以内通过隐式验证的进程)会使用另一个进程标志 PRIV_PFEXEC_AUTH 进行标记,以使其子进程无需进行后续的重新验证。除非实际 UID 发生变化,否则子进程将继承 PRIV_PFEXECPRIV_PFEXEC_AUTH 标志。与未验证配置文件集匹配的命令不需要进行重新验证,但其优先级低于已验证配置文件集中的命令。如果同一命令出现在多个配置文件中,则配置文件 shell 将使用第一个匹配的条目。

使用第二种形式 (pfexec –P privspec) 时,用户可以获取在 prof_attr(4) 中授予用户配置文件的附加特权。在命令行上指定的特权使用 priv_str_to_set(3C) 解析。得到的特权将先与在 prof_attr (4) 中使用 privs 关键字为所有用户配置文件指定的特权联合相交,并添加到可继承集,然后再执行命令。

用法

pfexec 用于使用预定义的进程属性(例如特定用户或组 ID)执行命令。

有关配置文件 shell 的完整使用说明,请参见 sh(1)csh(1)ksh(1) 手册页。

示例

示例 1 获取附加的用户特权
example% pfexec -P all chown user file

此命令仅以分配给当前用户的所有特权运行 chown user file,不必使用所有特权。

退出状态

将返回以下退出值:

0

成功完成。

1

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

bash(1)、csh(1)ksh(1)ksh88(1)profiles(1)sh(1)tcsh (1)、zsh (1)、exec_attr(4)prof_attr(4)user_attr(4)attributes(5)