Buka kunci layar masuk menggunakan baris perintah

30

Apakah mungkin untuk membuka kunci layar login shell 13.04 Gnome dari baris perintah? Seorang pengguna masuk ke Gnome shell, saya bisa masuk ke konsol sebagai pengguna ini. Saya juga punya akses root.

Ini untuk mengakses tampilan X11 aktif melalui VNC, tanpa harus memasukkan kata sandi.

Mengeksekusi

gnome-screensaver-command -d

seperti yang disarankan dalam posting blog tidak membantu.

layar login

krlmlr
sumber
Apakah ssh melempar Anda output atau kesalahan?
Braiam
@Braiam: Saya bisa sshmasuk, bukan itu masalahnya. Ini untuk mengakses tampilan X11 aktif melalui VNC, tetapi tanpa harus memasukkan kata sandi.
krlmlr

Jawaban:

33

Saya berasumsi Anda memiliki sistem linux terbaru systemd(misalnya Ubuntu 16.04 atau lebih baru).

Jika Anda perlu membuka kunci sesi Anda sendiri , jalankan saja loginctl unlock-session(tidak diperlukan root karena itu sesi Anda sendiri). Jika Anda memiliki beberapa sesi dan ingin memilih hanya satu, jalankan loginctl list-sessionsuntuk mengidentifikasi sesi dan kemudian jalankan mis loginctl unlock-session c187.

Jika Anda perlu membuka kunci semua sesi , jalankan saja sudo loginctl unlock-sessions. Perhatikan bahwa ini akan segera membuka SEMUA sesi tidak peduli pengguna mana yang menjalankan screen saver.


Jika Anda memerlukan lebih banyak informasi untuk mengidentifikasi sesi yang benar, Anda dapat mencoba sesuatu seperti ini:

loginctl list-sessions --no-legend | while read id rest; do echo; loginctl show-session $id; done
Mikko Rantalainen
sumber
3
Ini adalah satu-satunya jawaban yang bekerja pada 16.04
lemonsqueeze
Rupanya tidak perlu sudo
lemonsqueeze
1
Anda perlu sudojika Anda ingin membuka kunci screen saver dari SEMUA sesi (termasuk sesi yang tidak berjalan dengan id pengguna Anda).
Mikko Rantalainen
Perhatikan juga yang terakhir sdi unlock-sessions. Jika Anda ingin membuka hanya sesi Anda sendiri, lakukan saja loginctl unlock-session.
Mikko Rantalainen
2
Itu harus menjadi jawaban yang diterima!
Brice
16

Masalah dengan menjalankan perintah seperti gnome-screensaver-commanddari sesi SSH biasanya karena mereka tidak secara otomatis terhubung ke bus sesi yang sesuai untuk sesi desktop aktif - biasanya, pengaturan variabel DISPLAY akan memperbaikinya, misalnya ini berfungsi untuk saya (masuk melalui SSH sebagai pengguna yang sama yang memiliki sesi X yang dikunci, yang pada DISPLAY: 0):

$ DISPLAY=:0 gnome-screensaver-command -d

untuk membuka kunci, dan

$ DISPLAY=:0 gnome-screensaver-command -l

untuk mengunci.

Atau, Anda dapat mengaktifkan status aktif menggunakan dbus-send- misalnya

$ export DISPLAY=:0
$ dbus-send --session \
          --dest=org.gnome.ScreenSaver \
          --type=method_call \
          --print-reply \
          --reply-timeout=20000 \
          /org/gnome/ScreenSaver \
          org.gnome.ScreenSaver.SetActive \
          boolean:false

Sumber: https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples

Steeldriver
sumber
1
Sayangnya, tak satu pun dari metode ini membuka kunci layar tertentu yang diinstal pada sistem saya (lihat tangkapan layar). Bagaimana saya bisa menemukan proses mana yang bertanggung jawab untuk mengunci layar?
krlmlr
1
Apakah perintah mengembalikan kesalahan? Jika demikian silakan posting. Untuk melihat apakah screensaver lain sedang berjalan, Anda dapat mencoba ps -fu <username> | grep saver- ada kemungkinan bahwa xscreensaversedang digunakan sebagai pengganti gnome-screensaver, dalam hal ini Anda dapat mencoba DISPLAY=:0 xscreensaver-command -deactivate.
steeldriver
1
Saya menguji jawaban ini di Ubuntu 14.04. Itu tidak bekerja. Ini membuka layar, tetapi layar tetap terkunci.
kasperd
5

Berikut ini bekerja untuk saya:

sudo killall gnome-screensaver

Terutama membantu ketika Anda masuk melalui SSH dengan pengguna lain.

Rosch
sumber
Dikonfirmasi, saya mengalami masalah ini saat keyboard tidak mengetik di layar buka kunci, tetapi dapat beralih ke terminal menggunakan CTRL + ALT + F3 dan pembunuh layar screensaver ini membantu. Lalu saya baru saja pergi CTRL + ALT + F2 kembali ke sesi yang dikunci :)
jave.web
Ini berfungsi ketika X2Go menunjukkan layar kunci dan tidak merespons :)
endolith
1

Saya punya masalah dengan kunci layar gnome 3 (screensaver) terjebak di layar kosong. Saya berhasil mengatasinya dengan mengganti window manager gnome-shell.

Ctrl + Alt + F1 dan masuk pada konsol virtual, lalu:

pkill -QUIT gnome-shell
DISPLAY=:0.0 gnome-shell -r &

( &Latar belakang gnome-shell baru sehingga Anda dapat keluar dari konsol virtual dan tetap berjalan. Atau gunakan Ctrl + Z untuk menunda proses gnome-shell, dan bguntuk latar belakang itu.)

Mungkin tidak elegan, tetapi akhirnya memungkinkan saya untuk kembali ke aplikasi desktop saya tanpa harus memaksa saya untuk logout.

Ted Percival
sumber
Terima kasih, saya akan mencoba dan melihat apakah memulai kembali gnome-shellberfungsi untuk saya.
krlmlr
1

Saya memiliki masalah yang sama di mana layar buka kunci terkadang tidak menerima input keyboard. Cara saya akhirnya menyelesaikannya adalah dengan membunuh beberapa gnome-screensaver proses yang sedang berjalan, serta satu gnome-screensaver-dialogproses. Saya menduga bahwa proses apa pun yang memunculkan 2 sesi screensaver gnome mengacaukan layar pembuka saya. Saya sebenarnya seharusnya menggunakan xscreensaver sebagai gantinya, jadi mungkin itu mengacaukannya.

Bagaimanapun, Ctrl+Alt+F1cari proses screensaver yang sedang berjalan ps -aux | grep screendan bunuh semuanya. Perintah gnome dan xscreensaver yang tercantum dalam jawaban lain tidak berfungsi untuk saya.

Scott
sumber