Autentica a sessão VNC com o ConsolKit?

1

Eu tenho uma máquina Linux rodando o Fedora 16 em um armário. Não possui tela ou teclado. Eu me conecto a ele usando uma combinação de vnc e ssh.

Recentemente, após uma atualização, tive problemas com autenticação na máquina.

Se eu entrar nele, a área de trabalho do kde exibirá uma caixa de diálogo de erro a cada alguns minutos, dizendo Authorization failed. Failed to obtain authentication.

Se eu conectar uma unidade USB que não consegue montar, o Dolphin relata um problema de autenticação novamente.

Eu tive sucesso limitado em encontrar a solução. AFAICT, é um problema com o ConsoleKit me julgando ser um usuário não local, portanto, impede a autenticação.

Esta é a saída de ck-list-sessions :

$ ck-list-sessions 
Session5:
        unix-user = '1000'
        realname = 'steve'
        seat = 'Seat6'
        session-type = ''
        active = FALSE
        x11-display = ':1'
        x11-display-device = ''
        display-device = ''
        remote-host-name = ''
        is-local = FALSE
        on-since = '2012-09-16T08:07:03.137011Z'
        login-session-id = '1'

Eu tentei atualizar meu script .vnc/xstartup para incluir ck-launch-session da seguinte forma:

$ cat ~/.vnc/xstartup 
#!/bin/sh

exec ck-launch-session vncconfig -iconic &
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
OS='uname -s'
if [ $OS = 'Linux' ]; then
  case "$WINDOWMANAGER" in
    *gnome*)
      if [ -e /etc/SuSE-release ]; then
        PATH=$PATH:/opt/gnome/bin
        export PATH
      fi
      ;;
  esac
fi
if [ -x /etc/X11/xinit/xinitrc ]; then
  exec ck-launch-session /etc/X11/xinit/xinitrc
fi
if [ -f /etc/X11/xinit/xinitrc ]; then
  exec ck-launch-session sh /etc/X11/xinit/xinitrc
fi
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
exec ck-launch-session xsetroot -solid grey
exec ck-launch-session xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
exec ck-launch-session twm &

Isso não ajudou.

Como posso me autenticar no ConsoleKit ou fazer com que acredite que eu sou um usuário local?

    
por Steve Lorimer 16.09.2012 / 10:25

1 resposta

2

Você está entendendo mal a maneira como exec e ck-launch-session funcionam.

  1. Sempre que ck-launch-session é usado, cria uma nova sessão. Isso significa que você não pode simplesmente adicioná-lo a cada linha do Xstartup - em vez disso, você deve iniciar o script Xstartup inteiro com ck-launch-session .

    Por exemplo, você pode renomear o script xsession para xsession-real e executá-lo da seguinte forma:

    exec ck-launch-session ~/.vnc/xsession-real
    
  2. Sempre que exec é usado, substitui o processo atual pelo novo. Se o script chamar exec xsetroot , o resto do script não será executado. Isso significa que você deve usá-lo apenas para o comando final.

    (Nota: Isso não se aplica quando & é usado. Ambos foo & e exec foo & são equivalentes; eles somente substituem o processo filho que & cria.)

    #!/bin/sh
    
    vncconfig -iconic &
    
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    export XKL_XMODMAP_DISABLE=1
    OS='uname -s'
    if [ $OS = 'Linux' ]; then
      case "$WINDOWMANAGER" in
        *gnome*)
          if [ -e /etc/SuSE-release ]; then
            PATH=$PATH:/opt/gnome/bin
            export PATH
          fi
          ;;
      esac
    fi
    
    if [ -x /etc/X11/xinit/xinitrc ]; then
        exec /etc/X11/xinit/xinitrc
    elif [ -f /etc/X11/xinit/xinitrc ]; then
        exec sh /etc/X11/xinit/xinitrc
    fi
    
    [ -r ~/.Xresources ] &&
        xrdb ~/.Xresources
    xsetroot -solid grey
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    exec twm
    
por 16.09.2012 / 13:58

Tags