Mesin Xubuntu 16.04 yang sepenuhnya ditambal dengan pengguna yang baru dibuat tidak akan membiarkan saya membuka kunci setelah menggunakan light-locker untuk mengunci layar saya (terlepas dari apakah kunci diaktifkan secara manual atau melalui batas waktu). The layar tetap hitam (tapi bertenaga) pada entri password yang benar
Membunuh light-locker dari tty1 akan mengungkapkan desktop itu (dan akibatnya mencegah penguncian lebih lanjut).
Langkah-langkah dicoba:
- diaktifkan / dinonaktifkan kunci dalam pengaturan pengunci cahaya & dalam pengaturan daya (tidak ada perubahan)
- digunakan xscreensaver bukan light-locker (berfungsi)
- diuji jika masalah terkait dengan penangguhan atau penutupan tutup (tidak)
- Namun, setelah menangguhkan layar hitam mengungkapkan
This session is locked: You will be redirected to the unlock dialog automatically in a few seconds
pesan - tanpa redirection
- Namun, setelah menangguhkan layar hitam mengungkapkan
- dibersihkan + instal ulang lightdm, light-locker dan xubuntu-default-settings
- menggunakan
loginctl unlock-session
tidak berpengaruh systemctl status lightdm
hanya mengungkapkan (tidak berbahaya, diharapkan) pesan tentang modul pam kwallet yang hilang- memeriksa log dpkg untuk peningkatan antara "berhasil" dan "tidak berfungsi lagi" (tidak mencurigakan) dan mem-boot kernel sebelumnya (masalah tetap ada)
- Perilaku yang dibandingkan antara pengunci cahaya yang diprakarsai sesi dan yang dimulai secara manual (tidak ada perbedaan)
- menambahkan pengguna ke grup
nopasswdlogin
grup (layar hitam kemudian muncul tepat setelah penguncian, tidak hanya setelah memasukkan kata sandi)
Langkah-langkah tambahan apa yang terbukti bermanfaat dalam mencari cara untuk memperbaikinya?
Log debugging:
$ export LC_ALL=C; light-locker --debug & ( sleep 5; echo "## Locking now"; light-locker-command --lock; sleep 10; echo "### 10 seconds have passed - entering password now"; sleep 10; echo "### 10 more seconds have passwd - Killing"; killall light-locker; sleep 5; echo "### Killed now" )
[1] 23463
[gs_debug_init] gs-debug.c:106 (00:08:32): Debugging enabled
[main] light-locker.c:142 (00:08:32): initializing light-locker 1.7.0
[main] light-locker.c:144 (00:08:32): lock after screensaver 10
[main] light-locker.c:145 (00:08:32): late locking 0
[main] light-locker.c:146 (00:08:32): lock on suspend 1
[main] light-locker.c:147 (00:08:32): lock on lid 0
[main] light-locker.c:148 (00:08:32): idle hint 1
[query_session_id] gs-listener-dbus.c:2088 (00:08:32): org.freedesktop.login1.NoSessionForPID raised:
PID 23463 does not belong to any known session
[init_session_id] gs-listener-dbus.c:2180 (00:08:32): Got session-id: (null)
[query_sd_session_id] gs-listener-dbus.c:2164 (00:08:32): Couldn't determine our own sd session id: No such process
[init_session_id] gs-listener-dbus.c:2185 (00:08:32): Got sd-session-id: (null)
[init_seat_path] gs-listener-dbus.c:2262 (00:08:32): Got seat: /org/freedesktop/DisplayManager/Seat0
[gs_listener_delay_suspend] gs-listener-dbus.c:449 (00:08:32): Delay suspend
[gs_listener_x11_acquire] gs-listener-x11.c:172 (00:08:32): ScreenSaver Registered
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:32): obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus method=NameAcquired destination=:1.316
## Locking now
[gs_grab_grab_root] gs-grab-x11.c:647 (00:08:37): Grabbing the root window
[gs_grab_get_keyboard] gs-grab-x11.c:153 (00:08:37): Grabbing keyboard widget=E3
[gs_grab_get_mouse] gs-grab-x11.c:213 (00:08:37): Grabbing mouse widget=E3
[gs_manager_create_windows_for_screen] gs-manager.c:548 (00:08:37): Creating 1 windows for screen 0
[gs_manager_create_window_for_monitor] gs-manager.c:324 (00:08:37): Creating window for monitor 0 [0,0] (1600x900)
[update_geometry] gs-window-x11.c:197 (00:08:37): got geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:210 (00:08:37): using geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:197 (00:08:37): got geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:210 (00:08:37): using geometry for monitor 0: x=0 y=0 w=1600 h=900
[gs_window_move_resize_window] gs-window-x11.c:243 (00:08:37): Move and/or resize window on monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:197 (00:08:37): got geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:210 (00:08:37): using geometry for monitor 0: x=0 y=0 w=1600 h=900
[gs_window_move_resize_window] gs-window-x11.c:243 (00:08:37): Move and/or resize window on monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:197 (00:08:37): got geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:210 (00:08:37): using geometry for monitor 0: x=0 y=0 w=1600 h=900
[gs_window_move_resize_window] gs-window-x11.c:243 (00:08:37): Move and/or resize window on monitor 0: x=0 y=0 w=1600 h=900
[gs_manager_timed_switch] gs-manager.c:445 (00:08:37): Start switch to greeter timer
[gs_window_xevent] gs-window-x11.c:369 (00:08:37): not raising our windows
[window_map_event_cb] gs-manager.c:233 (00:08:37): Handling window map_event event
[gs_listener_resume_suspend] gs-listener-dbus.c:513 (00:08:37): Resume suspend: fd=14
[manager_maybe_grab_window] gs-manager.c:204 (00:08:37): Moving grab to 0x5595f8d5a290
[gs_grab_move_keyboard] gs-grab-x11.c:450 (00:08:37): Moving keyboard grab from E3 to 3A0000C
[gs_grab_move_keyboard] gs-grab-x11.c:457 (00:08:37): *** doing X server grab
[gs_grab_release_keyboard] gs-grab-x11.c:279 (00:08:37): Ungrabbing keyboard
[gs_grab_get_keyboard] gs-grab-x11.c:153 (00:08:37): Grabbing keyboard widget=3A0000C
[gs_grab_move_keyboard] gs-grab-x11.c:479 (00:08:37): *** releasing X server grab
[gs_grab_move_mouse] gs-grab-x11.c:395 (00:08:37): Moving pointer grab from E3 to 3A0000C
[gs_grab_move_mouse] gs-grab-x11.c:402 (00:08:37): *** doing X server grab
[gs_grab_release_mouse] gs-grab-x11.c:320 (00:08:37): Ungrabbing pointer
[gs_grab_get_mouse] gs-grab-x11.c:213 (00:08:37): Grabbing mouse widget=3A0000C
[gs_grab_move_mouse] gs-grab-x11.c:425 (00:08:37): *** releasing X server grab
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:37): obj_path=/org/freedesktop/login1 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[update_geometry] gs-window-x11.c:197 (00:08:37): got geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:210 (00:08:37): using geometry for monitor 0: x=0 y=0 w=1600 h=900
[gs_window_move_resize_window] gs-window-x11.c:243 (00:08:37): Move and/or resize window on monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:197 (00:08:37): got geometry for monitor 0: x=0 y=0 w=1600 h=900
[update_geometry] gs-window-x11.c:210 (00:08:37): using geometry for monitor 0: x=0 y=0 w=1600 h=900
[gs_window_move_resize_window] gs-window-x11.c:243 (00:08:37): Move and/or resize window on monitor 0: x=0 y=0 w=1600 h=900
[gs_listener_send_lock_session] gs-listener-dbus.c:180 (00:08:38): Send lock session
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:38): obj_path=(null) interface=(null) method=(null) destination=:1.316
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/session/c5 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/session/c12 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/seat/seat0 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
process 23463: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../dbus/dbus-message.c line 1340.
This is normally a bug in some application using the D-Bus library.
[query_session_active] gs-listener-dbus.c:1124 (00:08:39): Couldn't allocate the dbus message
[listener_dbus_handle_system_message] gs-listener-dbus.c:1361 (00:08:39): systemd notified ActiveSession 0
[listener_session_switched_cb] gs-monitor.c:298 (00:08:39): Session switched: 0
[gs_manager_stop_switch] gs-manager.c:456 (00:08:39): Stop switch to greeter timer
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/seat/seat0 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/session/c12 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/user/_108 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/seat/seat0 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
process 23463: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../dbus/dbus-message.c line 1340.
This is normally a bug in some application using the D-Bus library.
[query_session_active] gs-listener-dbus.c:1124 (00:08:39): Couldn't allocate the dbus message
[listener_dbus_handle_system_message] gs-listener-dbus.c:1361 (00:08:39): systemd notified ActiveSession 0
[listener_session_switched_cb] gs-monitor.c:298 (00:08:39): Session switched: 0
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:39): obj_path=/org/freedesktop/login1/session/c5 interface=org.freedesktop.login1.Session method=Lock destination=(null)
### 10 seconds have passed - entering password now
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:51): obj_path=/org/freedesktop/login1/session/c5 interface=org.freedesktop.login1.Session method=Unlock destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:51): obj_path=/org/freedesktop/login1/session/c13 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:51): obj_path=/org/freedesktop/login1/session/c5 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
[listener_dbus_handle_system_message] gs-listener-dbus.c:1330 (00:08:51): obj_path=/org/freedesktop/login1/seat/seat0 interface=org.freedesktop.DBus.Properties method=PropertiesChanged destination=(null)
process 23463: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../dbus/dbus-message.c line 1340.
This is normally a bug in some application using the D-Bus library.
[query_session_active] gs-listener-dbus.c:1124 (00:08:51): Couldn't allocate the dbus message
[listener_dbus_handle_system_message] gs-listener-dbus.c:1361 (00:08:51): systemd notified ActiveSession 0
[listener_session_switched_cb] gs-monitor.c:298 (00:08:51): Session switched: 0
[xroot_filter] gs-listener-x11.c:124 (00:08:52): ScreenSaver stopped
### 10 more seconds have passwd - Killing
### Killed now
Membedakan ini dengan sistem yang dikenal baik menghasilkan:
$ comm -3 <(grep -iv grab good | sed 's/[0-9:]\+/[NN]/g;s/[ \t]\+/ /g' | sort) <(grep -iv grab bad | sed 's/[0-9:]\+/[NN]/g;s/[ \t]\+/ /g' | sort) | head -n2
[init_session_id] gs-listener-dbus.c[NN] ([NN])[NN] Got session-id[NN] (null)
[init_session_id] gs-listener-dbus.c[NN] ([NN])[NN] Got session-id[NN] /org/freedesktop/login[NN]/session/c[NN]
Dan memang, ada sesuatu yang tampak sangat canggung tentang pengaturan sesi:
$ loginctl session-status
Could not get properties: No such process
light-locker
menggunakan opsi debug yang disebutkan di halaman manual? manpages.ubuntu.com/manpages/xenial/man1/light-locker.1.htmlJawaban:
TL; DR: light-locker menjaga layar tetap hitam jika systemd tidak dapat membaca / proc
light-locker
tergantung padadbus
penyediaanIPC
.dbus
tergantung padasystemd-logind
penyediaansession
informasi.systemd-logind
tergantung pada/proc
penyediaanprocess
informasi.Berarti ini tidak akan bekerja dengan baik bersama:
Dan tidak ada yang bisa diharapkan untuk:
Solusi Parsial 1
Solusi parsial , karena dilengkapi dengan pengungkapan informasi.
Izinkan program yang tidak terjangkau (seperti systemd, setelah menjatuhkan hak istimewa) untuk mengakses info proses pengguna lain di
/proc
.Solusi Parsial 2
Solusi parsial , karena systemd mungkin pecah di tempat lain, bukan hanya masuk.
Tambahkan systemd-logind ke grup yang sesuai, paling mudah dicapai dengan menambahkan layanan Drop-In.
Setelah salah satu solusi,
Got session-id: (null)
pesan akan lebih terlihatGot session-id: /org/freedesktop/login1/c7
dan light-locker akan dapat berkomunikasi dengan baik melaluidbus
.Apa yang harus saya lakukan untuk mencari tahu cara ini lebih cepat?
diff -ruiN
seluruh sistem.sumber