Я добавил скрипт к /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
напрямую завершается молча, как и должно, поэтому сам скрипт является исполняемым и работает правильно.
Может ли это быть скрытой настройкой безопасности, о которой я ничего не знаю?