Como root:
systemd-run --property PAMName=login \
--property User=my-user \
--property StandardInput=tty \
--property TTYPath=/dev/tty8 \
xinit xterm -- :1
A mágica está em definir PAMName=
, abrir uma sessão PAM e associar essa sessão ao TTY específico. Isso faz com que o pam_systemd faça o que você deseja. Eu falsifiquei login
- embora, tecnicamente, você deva definir um novo "nome de serviço" do PAM, caso precise de algum tratamento especial.
Então você pode escrever um script que execute o comando desejado. Em seguida, conceda acesso para executar esse script como root, usando sudo
.
Se você usa o SELinux, você terá que lutar contra isso também.