我的用户 shell 中有一些个人设置,例如:.vimrc
和.bash_profile
其他内容。
是否可以切换到 root 使用su -
但同时使用我的用户的配置文件?
答案1
指示-
获取su
目标用户的配置文件和环境。如果您想保留旧环境(即您的用户环境),只需省略-
并仅使用su
.当然,根用户特有的任何路径组件将不存在,并且必须手动添加。
答案2
su -
意思是“切换到 root,并将其作为登录 shell 运行”(也称为su -l
和su --login
)。
现在,即使没有-
变量$HOME
也会被设置,因此$HOME/.vimrc
将指向root
版本。
我们需要的是--preserve-environment
选择。
su --preserve-environment
这将运行 root shell,但将保持$HOME
不变,并将运行您自己的 shell(例如,如果您使用ksh
或zsh
)并将运行您的点文件
例如
$ su --preserve-environment
Password:
# id
uid=0(root) gid=0(root) groups=0(root)
# echo $HOME
/home/sweh
# echo $0
ksh
#
答案3
您可以将其插入 root.bash_profile
或.bashrc
任何更方便且可用的位置。
profile=anand # let's assume this is your user name
myorigusername=$(who am i | awk {'print $1'})
if [ "${myorigusername}" = "${profile}" ]
then
cd ~${myorigusername}
. ./.vimrc
. ./.bash_profile
# other stuff here
fi
如果您需要任何解释,请询问,或者更好的是,在您的系统上进行测试。