【发布时间】:2015-08-11 22:55:09
【问题描述】:
我通常使用一个名为“Jason”的用户/帐户,并且我会定期在该用户中更新我的 .bashrc。我偶尔会在我的计算机中使用 root 用户(我使用的是 MacBook),我的 .bashrc 在那里无法访问,这非常烦人。有什么方法可以让 root 用户自动获取位于“Jason”用户中的 .bashrc?
我尝试简单地将“源用户/Jason/.bashrc”放在根 .bashrc 中,但这不起作用。错误是该文件不存在;我的问题是 root 用户位于 /var/root/ 中,我正在尝试获取 /Users/Jason/。有什么办法可以克服吗?
提前致谢。
编辑:我是个白痴。我错过了一个斜线。 “源 /Users/Jason/.bashrc” 有效。
【问题讨论】:
-
你少了一个斜线。
source /Users/Jason/.bashrc. -
顺便提一下,这是非常糟糕的做法。它基本上允许特权升级攻击:非特权进程写入您的
~/.bashrc,然后当您打开交互式 root shell 时,命令会以 root 身份运行。 -
我在提交问题后很快就发现了我的错误,哈哈。我觉得自己像个白痴。至于你的另一点,你还有什么建议?使用root用户时有没有其他方法可以自动加载我的普通.bashrc?
-
"有没有其他方法可以自动加载..." 重点是自动加载你正常的
.bashrc是不安全的。我为我的 zsh runcoms 所做的(同样适用于 bash 和其他 shell)是在 dotfile 存储库中管理它们,并将它们符号链接到 HOME。然后我也会在 root 用户的家中克隆一个副本。每次我的 runcom 更改时,我都会将它们推送到 GitHub,我可以稍后从 root shell 中拉取。这样,每一次更改都需要您的明确参与和同意,并且无法注入恶意代码。 -
如果这样做了,最好运行
chmod 600 /root/.bashrc,这样任何没有特权的人都无法知道这件事正在发生。但当然,这是通过默默无闻的安全。
标签: macos bash terminal root .bash-profile