Вы можете написать скрипт, который проверяет аргументы CLI и передает их su
. Если -
, -l
или --login
опция не указана он напечатает предупреждение пользователя использовать эти опции.
*** Обратите внимание, это не будет «блокировать» их использование, su
поскольку они могут вызывать двоичный файл напрямую.
Пример 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
.bashrc
Вместо этого сделайте псевдоним в файле вашего пользователя для этого скрипта su=/usr/bin/su.sh
. Таким образом, каждый раз, когда вы вызываете date, этот скрипт запускается, и он сообщает вам, что вы установили флаг команды set date, и запрашивает подтверждение.
Вы также можете избежать использования псевдонима, просто заменив su
команду, как показано ниже, но также измените имя su
двоичного файла в сценарии с /usr/bin/su
на/usr/bin/su_cmd
mv /usr/bin/su /usr/bin/su_cmd mv /usr/bin/su.sh /usr/bin/su