我想不出任何理由为什么添加./bin
到我的PATH
环境中会是一个非常糟糕的主意。
我通常bin
在我正在工作的项目中创建文件夹,我讨厌这样做bin/command
,command
只要我在包含bin
文件夹的目录中并且该bin
文件夹包含command
可执行文件,就可以被 bash 选中。
我需要说服 :D
、$HOME/bin
和通常.
被./bin
视为安全风险。
对于$HOME/bin
这个问题,一些“破解者”将一些脚本(例如名为 nano 的脚本)推送到该目录,然后它会等待,直到您运行类似的命令sudo nano /etc/hosts
以获得即时 root 访问权限(将 nano 更改为 vi、emacs 等;命令并不重要,重要的是它可以执行的有效负载)。
对于.
和./bin
,仍然是同样的问题:添加一个在错误目录中工作的额外程序。
如果这些 ./bin/command 位于不同的目录而不是 /usr/local/bin (新的本地脚本的首选解决方案)中,这是因为它们执行不同的操作;如果运行错误怎么办?
如果您以相同的方式命名命令(让我们先调用,然后更新、提交、清理等),您可能正在处理目录,然后您会接到一个电话,然后换到另一个电话进行快速检查。挂断后,你的大脑会尝试恢复你正在做的事情,大多数时候会忘记你所做的快速“cd”(特别是如果屏幕上的所有内容似乎都指向正确的目录)并完成在错误的命令上运行目录(比如说清除你一个月所有工作的清理脚本)。
这可能看起来是一个无辜的错误,但很多人每天都会遇到这种情况!:)
一个好的解决方法(或更好的解决方案)是使用别名:
alias proj1-cleanup=/srv/proj1/bin/cleanup
Run Code Online (Sandbox Code Playgroud)
并添加正确的脚本cd
以确保它在正确的目录上运行。
这样,通过$HOME/.alias
添加您需要的各种脚本,您可以使用不同的命令来执行不同的操作,即使有人破解您的浏览器以创建文件$HOME/bin/ls
或某些本地用户在任何目录上创建 bin/ls 文件,这些文件永远不会被执行,因为您的路径仍然指向正确的命令。
但是,嘿,这是个人选择;您知道当地的风险是什么以及命令的作用。
归档时间: |
|
查看次数: |
320 次 |
最近记录: |