
/usr/local/bin/apt-get
我在 Ubuntu Trusty 系統上新增了一個腳本,它會在啟動「官方」之前進行一些所需的檢查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
會靜默退出,正如它應該的那樣,因此腳本本身是可執行的並且可以正常工作。
這可能是我一無所知的隱藏安全設定嗎?