我正在使用与其他大约 7 个人共享的服务器。我们每个人都有自己的用户帐户,但他们无权访问我们所需的大部分内容,因此除了用于身份验证之外,它们基本上没有任何用处。
相反,我们使用 sudo 成为不同的用户(称为“dev”)。开发帐户由团队中的每个人以及来自不同团队的其他一些人共享。考虑到这是我们有权访问的唯一具有足够权限来实际工作的帐户,因此不得不共享它是非常令人沮丧的。
我在 dev 的主目录下有自己的目录。我想做的是能够以我的子目录作为主目录打开一个新的 shell 会话,并从我的子目录而不是从开发人员的主目录获取点文件。这样我就可以拥有自己的设置(.bashrc、.vimrc 等),当我按下按钮时,我就不会挖掘其他人的 .bash_history,他们也不会挖掘我的。
我知道我可以通过更改 HOME 目录并根据需要获取点文件来伪造此操作,但我希望有一种方法可以在我 sudo 到共享帐户时自动执行此操作,例如:(
sudo -ui dev HOME=/users/dev/me bash
这不能按原样工作)。有没有办法做到这一点?
我知道“正确”的解决方案是首先不使用共享帐户,并为每个用户的帐户授予适当的权限,但服务器由一家单独的公司拥有和运营,并且他们的系统管理员一直反对我们的组。实际上,我们曾经拥有更多的访问权限和可用工具,但当他们发现我们正在做他们不希望我们做的事情时,这些访问权限和工具就被剥夺了(没有违反合同甚至不寻常的事情 - 系统管理员只是小气)
答案1
它并不像我想要的那么自动,但这就是我想出的:
sudo -iu dev bash # change to dev and start the session in bash instead of sh (the default for the dev user)
. me/rehome.sh # source the script below to change HOME
重新安装.sh:
export HOME=/home/dev/me # reset the HOME var.
export HISTFILE=$HOME/.bash_history # change the bash history file to my own
history -c; history -r # Clear the session's history (loaded from the shared account), and then load my own
. $HOME/.bashrc # source my .bashrc settings
cd $HOME
这使得 vim 和我启动的其他程序可以使用我的目录中的点文件而不是开发人员的点文件,并为我提供自己的 shell 历史记录,这样我就不必滚动浏览团队其他人的历史记录,他们也不必看到我的。