die*_*lar 3 bash sudo path alias
我在拥有 GNOME 的 Fedora 20 中安装了 Sublime Text 3,因为我无法从终端调用它,我创建了一个.bash_aliases文件,其中一行如下:
alias sublime='sublime_text'
Run Code Online (Sandbox Code Playgroud)
因此还通过编辑.bashrc文件添加将 sublime_text 文件位置添加到 PATH :
export PATH=$PATH:/usr/local/share/applications/sublime-text-3/
Run Code Online (Sandbox Code Playgroud)
但是,当我想编辑任何可能首先获得sudo 权限的文件时,我想做:
sudo sublime sudoLikelyFile
Run Code Online (Sandbox Code Playgroud)
或者
sudo sublime_text sudoLikelyFile
Run Code Online (Sandbox Code Playgroud)
但是我得到:
sudo: sublime: command not found
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
这里有两个潜在的问题。
首先,你需要让你的 shell 在以下之后展开别名sudo:
alias sudo='sudo '
Run Code Online (Sandbox Code Playgroud)
来自man bash:
如果别名值的最后一个字符是空白,则还检查别名之后的下一个命令字的别名扩展。
其次,在许多发行版上,$PATHsudo 不会传播到新的 shell。您可以手动更改secure_path以添加sublime_text可执行文件所在的目录:
Defaults secure_path = [...]:/usr/local/share/applications/sublime-text-3
Run Code Online (Sandbox Code Playgroud)
...或者您可以完全禁用secure_path(注意:secure_path确保攻击者无法更改您的路径并使用它来影响您将以root身份运行的命令,因此请仔细考虑这一点):
Defaults !secure_path
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |