我有一个switcher有不同用例的用户。这PATH应该取决于当前 shell 是否受到限制。因此我在末尾添加了/home/switcher/.bashrc:
[[ $- == *r* ]] && PATH='' && echo 'restricted' || echo 'unrestricted'
Run Code Online (Sandbox Code Playgroud)
但切换用户时却无法按预期工作:
root@host:~$ sudo -u switcher rbash
unrestricted
switcher@host:~$ echo $PATH
/home/switcher/bin:/usr/local/bin:/usr/bin:/bin
switcher@host:~$ echo $- $SHELL
himrBHs /usr/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
这告诉我,这.bashrc实际上是被处决的,但显然是在外面rbash。我在这里缺少什么?我需要更改什么以便PATH=''在执行时设置rbash而不是在中设置bash?
请注意,不幸的是,对于不同的用例使用不同的用户对我来说不是一个选择。