当我跑步时
export USERNAME=root
zsh
中的它给了我以下错误。
zsh: failed to change group ID: operation not permitted
知道为什么吗?
PS:我最初没有手动运行,但是当vim-dispatch
插件在vim
中运行命令时抛出此错误时,我遇到了这个问题。之后我可以通过在任何zsh
shell中运行它来重现这一点。
答案 0 :(得分:1)
parameter USERNAME
对应于shell进程的真实用户ID。修改它还会更改实际用户ID,从而有效地更改正在运行的shell进程的权限。如果原始用户具有足够的权限,这当然是唯一可能的。在大多数情况下,这可能意味着只允许 root 分配给USERNAME
,而不允许任何其他帐户。
例如,考虑一下这个shell会话:
root@host# echo $USERNAME $UID $EUID $GID $EGID
root 0 0 0 0
root@host# USERNAME=adaephon
adaephon@host% echo $USERNAME $UID $EUID $GID $EGID
adaephon 1000 1000 1000 1000
adaephon@host% USERNAME=root
zsh: failed to change group ID: operation not permitted
adaephon@host% echo $USERNAME $UID $EUID $GID $EGID
adaephon 1000 1000 1000 1000
从 root 开始,我可以轻松地将权限下放到普通用户帐户。但我无法切换回 root ,因为 adaephon 缺少必要的权限。