В Debian вы можете идентифицировать /etc/init.d
скрипты, которые были добавлены пользователем, с помощью следующего:
dpkg -S /etc/init.d/* | grep "no path found"
Здесь будут перечислены сценарии инициализации, которые не предоставляются пакетом.
Выяснить, был ли изменен сценарий инициализации, предоставляемый пакетом, несколько сложнее. Пакеты Debian содержат контрольные суммы большинства своих файлов, но не «conffiles», включающие сценарии инициализации. Таким образом, проверка того, был ли изменен сценарий инициализации, включает сравнение установленной версии с версией, поставляемой в пакете. Например, начиная с/etc/init.d/anacron
:
$ dpkg -S /etc/init.d/anacron
anacron: /etc/init.d/anacron
$ cd $TMP
$ apt source anacron=2.3-24
$ cmp anacron-2.3/debian/init.d /etc/init.d/anacron
Возможно, вас заинтересуют инструменты, помечающие модификации, такие как Tripwire(apt install tripwire
).
Не так просто, если вы не добавите вспомогательный код в свой ~/.zshrc
, например:
if [[ -o interactive && $1 = eval ]]; then
"$@"; argv=()
fi
А затем вызовите zsh
как:
zsh -s eval 'preexec() date; chpwd() pwd'
, например.
То же самое с env vars:
if (($+ZSH_STARTUP_CODE)); then
eval " $ZSH_STARTUP_CODE"
fi
И вызвать zsh
как:
ZSH_STARTUP_CODE='preexec() date; chpwd() pwd' zsh
но обратите внимание, что переменные env наследуются, поэтому это повлияет на все экземпляры zsh, запущенные в этой среде, и автоматическое выполнение данных из среды меня вообще нервирует.