Se você usa um shell personalizado sugerido pelo Arcege e 2bc , então esse shell receberá o comando que o usuário pretende executar como um argumento, porque o shell é chamado assim:
shellname -c the_original_command
Portanto, ignore o -c
(que é seu $1
) e encontre o comando em $2
. Por exemplo:
#!/bin/sh
case "$2" in
on)
do something
;;
off)
do something else
;;
*)
echo "wrong command name!" >&2
exit 1
esac
Se você usar um comando forçado como sugerido por Coren , você encontrará o comando que o usuário pretendeu invoque na variável de ambiente $SSH_ORIGINAL_COMMAND
. Você pode usar um script semelhante ao acima.