我已经设置了一些testing帐户来testingrbash,以限制用户在服务器上执行的操作。 目前我正在使用.bash_profile为这些configuration文件设置bash -r 。 但是当用户键入exit它们会进入正常的bash shell。
我想这样做,当他们键入exit注销服务器。 否则bash -r将不会限制访问。
请让我知道你有什么想法。
你的问题的确切答案是
exec bash -r
这将用rbash replaceloginshell,而不是简单地启动一个subprocess。
最好的答案是更改用户的loginshell。
通过useradd或usermod的-s选项将用户的loginshell设置为rbash ,例如。
usermod -s /bin/rbash luser
如果你的rbash可执行文件在/bin/rbash 。
这里是/ bin / bash的修复程序没有显示出来,然后做
sudo ln -s /bin/bash /bin/rbash sudo bash -c 'echo “/bin/rbash” >> /etc/shells' sudo chsh -s /bin/rbash ruser
然后执行此操作来更改用户shell
chsh -s /bin/rbash test