我有一些运行Fedora 20的虚拟机和一个NAS盒子,所有VM上都安装了HOME目录。它非常有用,因为用户必须维护一份git设置,VNC设置SSH密钥等。问题是,无论使用哪个VM,它们总是使用相同的.bash_profile,它始终引用相同的.bashrc。我说这是一个问题,因为我想在每个用户的基础上应用一些设置,但仅针对一个特定的VM。具体而言,我想在一个特定的独立服务器上为少数用户更改umask。
所以我认为必须有一种方法可以通过.bash_profile有条件地加载一些设置,具体取决于服务器的IP /主机名。
我想,就像.bash_profile引用.bashrc我可以使用此设置引用另一个文件,该文件仅存在于它将影响的服务器上。不是其他服务器此引用无效。这不是一个优雅的解决方案,它会抛出错误。
我试过谷歌搜索这个结果通常会指向stackoverflow,其中有人有类似的问题,但这次我找不到任何东西。
有人知道如何解决这个问题吗?
提前感谢您的帮助。
答案 0 :(得分:4)
您可以将您的主机特定命令放在.bashrc_myhostname
中,如果它存在则将其来源:
[ -f "$HOME/.bashrc_$HOSTNAME" ] && . "$HOME/.bashrc_$HOSTNAME"
或者您可以使用if
或case
语句为某些主机硬编码命令:
if [ "$HOSTNAME" = "mytestserver" ]
then
ulimit -c unlimited
fi
答案 1 :(得分:3)
这是我测试过的,也是我想做的。 我的大多数用户在更改别名时都会查看.bashrc,以确保我不会意外地更改它.bash_profile
TargetVM="vm1.example.lan"
if [ "$TargetVM" = "$HOSTNAME" ]; then
umask 077
else
umask 027
fi