Es gibt verschiedene Möglichkeiten, dies zu tun.
Verwenden eines Skripts
Eine schnelle und schmutzige Lösung wäre, ein Skript mit dem Namen apt-get
oder zu schreiben aptitude
und das eigentliche Programm als solches aufzurufen:
#!/bin/bash
# filename: apt-get
# '$@' is all of the arguments passed to the script
/usr/bin/apt-get-bin "$@"
# or /usr/bin/aptitude-bin "$@"
if [[ $1 == *upgrade* ]] ; then
checkrestart
fi
Machen Sie das Skript ausführbar : chmod +x apt-get
. Möglicherweise möchten Sie auch das Skript im Besitz von root erstellen : chown root apt-get; chgrp root apt-get
. Achten Sie darauf, das setuid-Bit in Ihrem Skript nicht zu setzen. Wenn ein Angreifer Schreibrechte dafür erhält, kann er es schnell und einfach ändern, um ihm eine Root-Shell zu geben.
Diese Methode würde natürlich erfordern, dass Sie die eigentliche Binärdatei an einen anderen Ort verschieben und Ihr Shell-Skript an einen Ort in Ihrem Pfad verschieben. Der richtige Ort, um Benutzerskripte zu platzieren, ist /usr/local/bin
. In dieser Situation sollten Sie Ihr Skript jedoch an der Stelle ablegen, an der sich die eigentliche Binärdatei befand, bevor Sie es verschoben haben, um die Organisation zu gewährleisten.
Das Ersetzen der Binärdatei durch ein Skript auf diese Weise ist ziemlich aufdringlich und betrifft alle Benutzer auf dem Computer. Alternativ können Sie Ihr Skript auch so nennen apt-get-cr
und daran denken, dieses Skript anstelle von aufzurufen apt-get
. Sie können auch eine Shell-Funktion schreiben.
Verwenden einer Shell-Funktion
Mit einer Shell-Funktion können Sie den Befehlsnamen beibehalten, apt-get
ohne sich in Binärdateien bewegen zu müssen.
apt-get() {
# 'command' makes sure this function doesn't call itself.
# You could also use a direct path the binary as shown above.
command apt-get "$@"
if [[ $1 == *upgrade* ]] ; then
checkrestart
fi
}
Setzen Sie diese Funktion irgendwo in der Shell - Konfiguration ( ~/.bashrc
, ~/.zshrc
usw.)
Diese Methode ist im Allgemeinen viel weniger aufdringlich als die Skriptmethode. Außerdem müssen Sie sich nicht in den Binärdateien bewegen, was im Allgemeinen nur der Root-Benutzer tun kann.
Auf der anderen Seite ist die Shell-Funktionsmethode zwischen Shells nicht immer sehr portabel und passt nicht so gut zu grafischen Oberflächen wie Launcher-Balken wie die Skriptmethode (Sie können ein Skript fast immer wie eine ausführbare Binärdatei behandeln. )
apt
häufigdpkg
mehrmals aufgerufen wird.