1

У меня есть Linux-машина с Fedora 16 в шкафу. У него нет экрана или клавиатуры. Я подключаюсь к нему, используя комбинацию VNC и SSH.

Недавно после обновления у меня возникли проблемы с аутентификацией на машине.

Если я обращаюсь к нему, на рабочем столе kde каждые несколько минут появляется диалоговое окно с сообщением об ошибке « Authorization failed. Failed to obtain authentication.

Если я подключаю USB-накопитель, который не удается смонтировать, Dolphin снова сообщает о проблеме аутентификации.

У меня был ограниченный успех в поиске решения. AFAICT, это проблема с ConsoleKit, который считает меня нелокальным пользователем, поэтому он предотвращает аутентификацию.

Это вывод из 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'

Я попытался обновить мой .vnc/xstartup чтобы включить ck-launch-session следующим образом:

$ 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 &

Это не помогло.

Как я могу либо аутентифицировать себя в ConsoleKit, либо обмануть его, полагая, что я являюсь локальным пользователем?

1 ответ1

2

Вы неправильно понимаете, как работают exec и ck-launch-session .

  1. Каждый раз, когда используется ck-launch-session , он создает новый сеанс. Это означает, что вы не можете просто добавить его в каждую строку вашего Xstartup - вместо этого вы должны запустить весь скрипт Xstartup с помощью ck-launch-session .

    Например, вы можете переименовать скрипт xsession в xsession-real , а затем запустить его так:

    exec ck-launch-session ~/.vnc/xsession-real
    
  2. Каждый раз, когда используется exec , он заменяет текущий процесс новым. Если скрипт вызывает exec xsetroot , остальная часть скрипта не будет выполнена. Это означает, что вы должны использовать его только для последней команды.

    (Примечание: это не применяется, когда & используется. И foo & и exec foo & эквивалентны; они только заменяют дочерний процесс, который & создает.)

    #!/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
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .