ต้องใช้รหัสผ่านเมื่อตื่นจากการระงับเมื่อถูกระงับเป็นเวลา 10 นาที


11

โดยทั่วไปฉันต้องการให้แล็ปท็อปของฉันถูกล็อคเมื่อถูกระงับ แต่ไม่ใช่เมื่อฉันเพิ่งระงับเนื่องจากมีกรณีการใช้งานที่ป้อนรหัสผ่านของฉันหลังจากแล็ปท็อปของฉันตื่นขึ้นมาจากการหยุดชั่วคราวนั้นค่อนข้างยุ่งยาก การประนีประนอมที่ดีคือต้องใช้รหัสผ่านเข้าสู่ระบบหากแล็ปท็อปถูกระงับมากกว่า 10 นาทีที่แล้ว ฉันจะทำสิ่งนี้ได้อย่างไร

ฉันใช้ Ubuntu 16.04 กับ Unity


ชอบฟีเจอร์ "ล็อคหลังจาก x นาที" ของ Android หรือไม่
You'reAGitForNotUsingGit

@AndroidDev สวยมากใช่
UTF-8

คำตอบ:


7

สร้างไฟล์ภายใน/lib/systemd/system-sleep/ชื่อเช่นlightdm::

sudo touch /lib/systemd/system-sleep/lightdm

ทำให้ไฟล์นี้ปฏิบัติการได้:

sudo chmod +x /lib/systemd/system-sleep/lightdm

ทุกครั้งที่คุณ "หยุด" หรือ "ดำเนินต่อ" Ubuntu ของคุณสคริปต์นี้จะทำงาน

เปิดโดยใช้โปรแกรมแก้ไขข้อความที่คุณต้องการเช่น: sudo nano /lib/systemd/system-sleep/lightdmและวางบรรทัดนี้ลงในนั้นจากนั้นบันทึก:

#!/bin/sh
set -e

case "$1" in
   pre)

    #Store current timestamp (while suspending)
    /bin/echo "$(date +%s)" > /tmp/_suspend 
    ;;

   post)
      #Compute old and current timestamp
      oldts="$(cat /tmp/_suspend)"
      ts="$(date +%s)"

      #Prompt for password if suspended > 10 minutes
      if [ $((ts-oldts)) -ge 600 ];
       then
         export XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
         /usr/bin/dm-tool lock
      fi

      /bin/rm /tmp/_suspend
   ;;
esac

มันทำอะไร

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

สำหรับขั้นตอนสุดท้าย:

เปิด "การตั้งค่าระบบ" -> "ความสว่าง & ล็อค" ปิดใช้งานการถามรหัสผ่านหลังจากตื่นขึ้นมาจากการหยุดทำงานชั่วคราวเนื่องจากเราปล่อยให้การล็อคหน้าจอเป็นสคริปต์

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากรีบูตหรือปิดคุณยังต้องใส่รหัสผ่านของคุณ


1
+1 ดีมาก ฉันควรชี้ให้เห็นความคิดเห็น#Remove password prompetควรอ่าน#Prompt for password if suspended > 10 minutes
WinEunuuchs2Unix

@ WinEunuuchs2Unix ขอบคุณที่ชี้ให้เห็นว่าฉันแรกเขียนอย่างอื่นแล้วฉันลืมที่จะเปลี่ยนความคิดเห็น :-)
Ravexina

0

เพิ่มสคริปต์ใน/lib/systemd/system-sleep/เพื่อปลดล็อกเซสชันของคุณหากระบบหยุดทำงานชั่วคราว:

cd /lib/systemd/system-sleep/
sudo touch     unlock_early_suspend
sudo chmod 755 unlock_early_suspend
sudo -H gedit     unlock_early_suspend

ด้วยเนื้อหานี้:

#!/bin/bash
# Don't ask for password on resume if computer has been suspended for a short time

# Max duration of unlocked suspend (seconds)
SUSPEND_GRACE_TIME=600

file_time()      {  stat --format="%Y" "$1";  }

unlock_session()
{
    # Ubuntu 16.04
    sleep 1; loginctl unlock-sessions
}

# Only interested in suspend/resume events here. For hibernate etc tweak this
if [ "$2" != "suspend" ]; then  exit 0;  fi

# Suspend
if [ "$1" = "pre" ]; then  touch /tmp/last_suspend;  fi

# Resume
if [ "$1" = "post" ]; then
    touch /tmp/last_resume
    last_suspend=`file_time /tmp/last_suspend`
    last_resume=`file_time /tmp/last_resume`
    suspend_time=$[$last_resume - $last_suspend]

    if [ "$suspend_time" -le $SUSPEND_GRACE_TIME ]; then
        unlock_session
    fi
fi

1
ตอนแรกฉันคิดว่าวิธีการของคุณ (ปลดล็อคอย่างแข็งขัน) นั้นสวยงามกว่าคำตอบอื่น ๆ (ซึ่งล็อคอย่างแข็งขัน) แต่จากนั้นฉันสังเกตเห็นว่าคุณมีคุณสมบัติแปลก: ถ้าฉันล็อคหน้าจอของฉันฉันต้องการให้มันถูกล็อคจนกว่าจะมีการป้อนรหัสผ่าน อย่างไรก็ตามสคริปต์ของคุณจะปลดล็อกหน้าจอหากคอมพิวเตอร์ถูกระงับชั่วคราวเป็นระยะเวลาสั้น ๆ ในขณะที่หน้าจอถูกล็อคอยู่แล้ว นั่นเป็นเหตุผลที่ฉันยอมรับคำตอบอื่น
UTF-8

แน่นอนว่าจะเป็นปัญหา =)
lemonsqueeze

-2

ฉันสามารถช่วยคุณได้ด้วยสิ่งนี้ ก่อนอื่นให้ไปที่การตั้งค่า เลือกการตั้งค่านี้:

Brightness_ & Lock

จะมีเมนูดร็อปดาวน์ที่ระบุว่าหน้าจอปิดอยู่

Screen_Turns_Off

หลังจากคลิกที่เมนูแบบเลื่อนลงเปลี่ยนการตั้งค่าทั้งสองเพื่อให้มีลักษณะดังนี้:

ล็อกหน้าจอ


สิ่งนี้ใช้ไม่ได้ ฉันตั้งเวลาเป็น 30 วินาทีสำหรับการทดสอบ เช่นนี้ฉันต้องป้อนรหัสผ่านของฉันแม้หลังจากที่ระงับคอมพิวเตอร์เป็นเวลา 5 วินาทีเท่านั้น เช่นนี้ฉันได้รับสิทธิ์บนเดสก์ท็อปของฉันแม้หลังจากที่ระงับคอมพิวเตอร์ของฉันเป็นเวลา 3 นาที
UTF-8

ขออภัยเกี่ยวกับสิ่งนั้นฉันลืมขั้นตอน
BJsgoodlife

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