Esta pode não ser a solução ideal, mas funcionará.
Primeiro, para contornar o problema das permissões, su root
. Próximo exec login
- a razão para isso é no final de man login
:
A recursive login, as used to be possible in the good old days, no longer works; for most purposes su(1) is a satisfactory substitute. Indeed, for security reasons, login does a vhangup() system call to remove any possible listening processes on the tty. This is to avoid password sniffing. If one uses the command login, then the surrounding shell gets killed by vhangup() because it's no longer the true owner of the tty. This can be avoided by using exec login in a top-level shell or xterm.
Você pode então ser enforcado por:
Cannot make/remove an entry for the specified session
Isso será refletido nos registros do sistema junto com:
login: pam_loginuid(login:session): set_loginuid failed
Provavelmente também está relacionado à recursão e que o seu uid
não corresponde ao seu nome de usuário: session opened for user golidlocks by golilocks(uid=0)
(porque o uid de goldilocks
na sessão su
foi definido como 0).
Você pode contornar isso comentando a seguinte linha temporariamente em /etc/pam.d/login
:
session required pam_loginuid.so
Observe que, para acessar a GUI, você provavelmente terá que usar um argumento --display
(por exemplo, --display :0
) para seu aplicativo, como faria em um console de VT.