ปลดล็อกหน้าจอเข้าสู่ระบบโดยใช้บรรทัดคำสั่ง


30

เป็นไปได้ไหมที่จะปลดล็อคหน้าจอเข้าสู่ระบบเชลล์ Gnome 13.04 จากบรรทัดคำสั่ง? ผู้ใช้ลงชื่อเข้าใช้ Gnome shell ฉันสามารถเข้าสู่คอนโซลในฐานะผู้ใช้นี้ได้ ฉันยังสามารถเข้าถึงรูตได้

นี่คือการเข้าถึงการแสดงผล X11 ที่ใช้งานผ่าน VNC โดยไม่ต้องป้อนรหัสผ่าน

การดำเนินการ

gnome-screensaver-command -d

ตามที่แนะนำในการโพสต์บล็อกไม่ได้ช่วย

หน้าจอเข้าสู่ระบบ


ssh จะส่งเอาต์พุตหรือข้อผิดพลาดให้คุณหรือไม่?
Braiam

@Braiam: ฉันทำได้sshนั่นไม่ใช่ปัญหา สำหรับการเข้าถึงหน้าจอ X11 ที่ใช้งานผ่าน VNC แต่ไม่ต้องป้อนรหัสผ่าน
krlmlr

คำตอบ:


33

ฉันสมมติว่าคุณมีระบบ linux เมื่อเร็ว ๆ นี้ด้วยsystemd(เช่น Ubuntu 16.04 หรือใหม่กว่า)

หากคุณต้องการปลดล็อกเซสชันของคุณเองเพียงแค่รันloginctl unlock-session(ไม่จำเป็นต้องรูทเพราะเป็นเซสชั่นของคุณเอง) ถ้าคุณมีหลายครั้งและต้องการที่จะเลือกเพียงหนึ่งเรียกใช้เพื่อระบุเซสชั่นและเรียกใช้เช่นloginctl list-sessionsloginctl unlock-session c187

หากคุณจำเป็นต้องปลดล็อคเซสชันทั้งหมดsudo loginctl unlock-sessionsเรียกเพียง โปรดทราบว่าสิ่งนี้จะปลดล็อคเซสชันทั้งหมดทันทีไม่ว่าผู้ใช้รายใดกำลังเรียกใช้โปรแกรมรักษาหน้าจอ


หากคุณต้องการข้อมูลเพิ่มเติมเพื่อระบุเซสชันที่ถูกต้องคุณสามารถลองดังนี้:

loginctl list-sessions --no-legend | while read id rest; do echo; loginctl show-session $id; done

3
นี่เป็นคำตอบเดียวที่ทำงานใน 16.04
lemonsqueeze

เห็นได้ชัดว่าไม่จำเป็นต้องมี sudo
lemonsqueeze

1
คุณต้องการsudoถ้าคุณต้องการปลดล็อกโปรแกรมรักษาหน้าจอของทุกเซสชัน (รวมถึงเซสชันที่ไม่ได้ทำงานด้วย ID ผู้ใช้ของคุณ)
Mikko Rantalainen

นอกจากนี้ยังทราบสุดท้ายในs หากคุณต้องการที่จะปลดล็อคเพียงเซสชั่นของคุณเองเพียงแค่ทำunlock-sessions loginctl unlock-session
Mikko Rantalainen

2
ควรเป็นคำตอบที่ยอมรับได้!
Brice

16

ปัญหาเกี่ยวกับการดำเนินการคำสั่งเช่นgnome-screensaver-commandจากเซสชัน SSH มักจะไม่เชื่อมต่อกับเซสชันบัสที่เหมาะสมโดยอัตโนมัติสำหรับเซสชันเดสก์ท็อปที่ใช้งาน - โดยปกติแล้วการตั้งค่าตัวแปร DISPLAY จะแก้ไขได้เช่นงานเหล่านี้สำหรับฉัน (เข้าสู่ระบบผ่านทาง SSH เช่นเดียวกับผู้ใช้ที่เป็นเจ้าของเซสชัน X ที่ถูกล็อคซึ่งอยู่ใน DISPLAY: 0):

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

เพื่อปลดล็อคและ

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

ล็อค.

หรือคุณสามารถสลับสถานะที่ใช้dbus-sendงานได้เช่น -

$ 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

ที่มา: https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples


1
น่าเสียดายที่วิธีการเหล่านี้ไม่ได้ปลดล็อคการล็อคหน้าจอเฉพาะที่ติดตั้งในระบบของฉัน (ดูภาพหน้าจอ) ฉันจะค้นหากระบวนการที่รับผิดชอบการล็อกหน้าจอได้อย่างไร
krlmlr

1
คำสั่งส่งคืนข้อผิดพลาดหรือไม่? ถ้าเป็นเช่นนั้นกรุณาโพสต์มัน หากต้องการดูว่ามีสกรีนเซฟเวอร์ที่แตกต่างกันหรือไม่คุณสามารถลองได้ps -fu <username> | grep saver- เป็นไปได้ที่xscreensaverจะใช้แทนการใช้gnome-screensaverซึ่งในกรณีนี้คุณสามารถลองDISPLAY=:0 xscreensaver-command -deactivateได้
ขับขี่เหล็ก

1
ฉันทดสอบคำตอบนี้บน Ubuntu 14.04 มันไม่ทำงาน มันยกเลิกการว่างหน้าจอ แต่หน้าจอยังคงล็อคอยู่
kasperd

5

การทำงานต่อไปนี้สำหรับฉัน:

sudo killall gnome-screensaver

มีประโยชน์อย่างยิ่งเมื่อคุณลงชื่อเข้าใช้ผ่าน SSH กับผู้ใช้รายอื่น


ยืนยันว่าฉันมีปัญหานี้เมื่อแป้นพิมพ์ไม่ได้พิมพ์บนหน้าจอปลดล็อค แต่สามารถสลับไปยังเทอร์มินัลโดยใช้ CTRL + ALT + F3 และตัวทำลายหน้าจอนี้ช่วยได้ จากนั้นผมก็ไป CTRL + ALT + F2 กลับไปเซสชั่นที่ถูกขัง :)
jave.web

สิ่งนี้จะทำงานเมื่อ X2Go แสดงหน้าจอล็อคและไม่ตอบสนอง :)
endolith

1

ฉันมีปัญหากับการล็อกหน้าจอ (สกรีนเซฟเวอร์) ของ gnome 3 ที่ค้างอยู่ที่หน้าจอว่าง ฉันจัดการเพื่อหลีกเลี่ยงปัญหานี้โดยการแทนที่ตัวจัดการหน้าต่าง gnome-shell

Ctrl + Alt + F1 และเข้าสู่ระบบบนคอนโซลเสมือนจากนั้น:

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

(สร้าง&พื้นหลัง gnome-shell ใหม่เพื่อให้คุณสามารถออกจากระบบคอนโซลเสมือนและเรียกใช้ต่อไปหรือใช้ Ctrl + Z เพื่อระงับกระบวนการ gnome-shell และbgทำให้พื้นหลัง)

มันอาจจะไม่หรูหรา แต่ในที่สุดมันก็อนุญาตให้ฉันกลับไปที่แอพเดสก์ท็อปของฉันโดยไม่ต้องมีคำสอนบังคับให้ฉันออกจากระบบ


ขอบคุณฉันจะลองดูว่าการรีสตาร์ทนั้นgnome-shellเหมาะกับฉันหรือไม่
krlmlr

1

ฉันมีปัญหาคล้ายกันซึ่งหน้าจอปลดล็อคจะไม่ยอมรับการป้อนข้อมูลด้วยแป้นพิมพ์ วิธีที่ฉันแก้ปัญหาได้ในที่สุดก็คือการฆ่ากระบวนการต่าง ๆ gnome-screensaverที่กำลังทำงานอยู่รวมถึงgnome-screensaver-dialogกระบวนการเดียว ฉันคาดเดาว่ากระบวนการใดก็ตามที่วางไข่ช่วงเวลาสกรีนช็อต 2 คำพังเพยจะทำให้หน้าจอปลดล็อคของฉันยุ่ง จริง ๆ แล้วฉันควรจะใช้ xscreensaver แทนดังนั้นอาจจะสับสนกับมัน

อย่างไรก็ตามCtrl+Alt+F1มองหากระบวนการสกรีนเซฟเวอร์ที่ทำงานอยู่ps -aux | grep screenและฆ่ามันทั้งหมด คำสั่ง gnome และ xscreensaver ที่แสดงในคำตอบอื่น ๆ ใช้ไม่ได้สำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.