我在 Ubuntu Trusty 系统上添加了一个脚本/usr/local/bin/apt-get
,它会在启动“官方”之前执行一些必要的检查apt-get
。
出于我无法理解的原因,尽管所有信息都告诉我不应该这样,但这个脚本却被完全忽略了。
出于测试目的,该脚本目前不执行任何操作并且应该只是退出,但无论如何它都不会启动。
/usr/local/bin
具有优先权$PATH
:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ which apt-get
/usr/local/bin/apt-get
$ ls -l /usr/local/bin/apt-get
-rwxr-xr-x 1 root root 553 Apr 16 03:01 /usr/local/bin/apt-get
strace
似乎执行了脚本:
$ strace apt-get
execve("/usr/local/bin/apt-get", ["apt-get"], [/* 26 vars */]) = 0
[...]
open("/usr/local/bin/apt-get", O_RDONLY) = 3
[...]
read(10, "#!/bin/sh\n\n# Note: this little s"..., 8192) = 553
但脚本显然被忽略了:
$ apt-get
apt 1.0.1ubuntu2 for amd64 compiled on Oct 28 2014 20:55:14
Usage: apt-get [options] command
...
直接启动/usr/local/bin/apt-get
会默默退出,这是应该的,所以脚本本身是可执行的并且可以正常工作。
这可能是我不知道的隐藏安全设置吗?