Você pode escrever um script que verifique os argumentos da CLI e os transmita para su
. Se as opções -
, -l
ou --login
não forem especificadas, ele imprimirá um aviso para o usuário usar essas opções.
*** Por favor, note que isso não "bloquearia" o uso de su
, pois eles poderiam chamar o binário diretamente.
Exemplo de script 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
Crie um alias no arquivo .bashrc
do usuário para esse script, como alias su=/usr/bin/su.sh
. Dessa forma, toda vez que você chama a data de execução desse script, ele informa que você emitiu o sinalizador de comando set date e solicita confirmação.
Você também pode evitar o uso de um alias, simplesmente substituindo o comando su
, como abaixo, mas também altere o nome do binário su
no script de /usr/bin/su
para /usr/bin/su_cmd
mv /usr/bin/su /usr/bin/su_cmd
mv /usr/bin/su.sh /usr/bin/su