-p 在 shell 脚本上做什么?

1 linux shell

来自 shell 的 on -p [val] 是否以特定优先级启动进程?

Jon*_*ler 5

-p选件bashksh有关的安全性。它用于防止 shell 读取用户控制的文件。

bash手册说:

使用不相等的有效和实际 uid/gid 调用

如果 Bash 启动时有效用户(组)id 不等于真实用户(组)id,并且-p没有提供该选项,则不读取启动文件,不从环境继承 shell 函数,SHELLOPTS、BASHOPTS、 CDPATH 和 GLOBIGNORE 变量,如果它们出现在环境中,将被忽略,并将有效用户 ID 设置为真实用户 ID。如果-p在调用时提供该选项,则启动行为相同,但不会重置有效用户 ID。

ksh手册说:

如果使用该-p选项或者真实用户 ID 或组 ID 与有效用户 ID 或组 ID 不匹配(请参阅 getuid(2)、getgid(2)),则 shell 具有特权。特权 shell 不处理 $HOME/.profile 也不处理 ENV 参数(见下文),而是处理文件 /etc/suid_profile。清除特权选项会导致 shell 将其有效用户 ID (group-id) 设置为其真实用户 ID (group-id)。