Sie könnten ein Skript schreiben, das die CLI-Argumente überprüft und an diese weiterleitet su
. Wenn die -
, -l
oder --login
Optionen nicht angegeben sind die es wird eine Warnung an den Benutzer drucken diese Optionen zu nutzen.
*** Bitte beachten Sie, dass dies die Verwendung nicht "blockieren" würde, su
da sie die Binärdatei direkt aufrufen könnten.
Beispielskript su.sh
:
#!/bin/bash ### script to prompt at su ### counter variable CNT=0 ### evaluate all the CLI arguments passed to "su" and check if the login is specified (also let `-V` version argument work) for arg in $@ do if [[ $arg == - || $arg == -l || $arg == --login || $1 == -V ]]; then ### increment counter if login argument is found CNT=$((CNT+1)) fi done ### check if login argument is given if [[ $CNT -ge 1 ]]; then /usr/bin/su $@ else echo -e '*** Please use "-", "-l" or "--login" with the "su" command ***' exit 2 fi
Machen Sie in der .bashrc
Datei des Benutzers einen Alias zu diesem Skript und nicht wie ein Alias su=/usr/bin/su.sh
. Auf diese Weise wird bei jedem Aufruf des Datums das Skript ausgeführt und informiert Sie, dass Sie das Befehlszeilenmerkmal set date ausgegeben haben und zur Bestätigung auffordert.
Sie können auch die Verwendung eines Alias vermeiden, indem Sie einfach den su
Befehl wie folgt ersetzen, aber ändern Sie auch den su
Namen der Binärdatei im Skript von /usr/bin/su
in/usr/bin/su_cmd
mv /usr/bin/su /usr/bin/su_cmd mv /usr/bin/su.sh /usr/bin/su