O padrão sensível à segurança (ou pelo menos colocado nos sudoers padrão de sua distribuição) é não permitir um comando sudo sem tty, a fim de evitar o escalonamento de privilégios de uma violação em um aplicativo. O comando executado com um atalho não tem tty, por isso não será executado. Você pode desativar essa configuração globalmente, mas é melhor desativá-la para tudo, exceto esse comando. A opção é denominada requiretty
:
Cmnd_Alias CHVT = /bin/chvt
me ALL = NOPASSWD: CHVT
Defaults!CHVT !requiretty
O primeiro !
significa o que segue é um Cmnd_Alias, o segundo !
é o operador lógico. Portanto, executar o chvt é isento de requiretty. Aqui o uso de Cmnd_Alias não era necessário, mas você deveria usar um comando com opções, ou querer desabilitar requiretty para dois comandos que a sintaxe exige.
NOTA: Algumas outras configurações podem cancelar algumas dessas linhas. Portanto, colocá-lo por último em sudoers pode ser necessário. Parece que o OP também precisava fazer isso para que funcionasse, talvez por causa de %sudo ALL=(ALL:ALL) ALL