10分間中断されたときに中断から復帰するときにのみパスワードが必要


11

通常、ラップトップはサスペンド状態のときにロックされますが、サスペンド状態から復帰した後にパスワードを入力するのは非常に面倒なので、単にサスペンドしたときではなくロックします。適切な妥協案は、ラップトップが10分以上前に中断された場合にのみログインパスワードを要求することです。どうすればいいですか?

私はUnityでUbuntu 16.04を使用しています。


Androidの「x分後にロック」機能が好きですか?
-You'reAGitForNotUsingGit

@AndroidDevかなりそうです。
UTF-8

回答:


7

内に/lib/systemd/system-sleep/、eg:という名前のファイルを作成します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

それは何ですか?

Ubuntuを「スリープ」モードにすると、このスクリプトは現在のタイムスタンプを保存します。システムを再開するときに、現在のタイムスタンプと古いタイムスタンプをチェックします。あなたは画面を「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

確かにそれは問題になります=)
レモンスクイズ

-2

私はこれであなたを助けることができます。まず、設定に移動します。この設定を選択してください:

明るさ_&ロック

画面がオフになるというドロップダウンメニューが表示されます。

Screen_Turns_Off

ドロップダウンメニューをクリックした後、両方の設定を次のように変更します。

ロック画面


これは動作しません。テストのために時間を30秒に設定します。このように、コンピューターを5秒間だけ中断した後でもパスワードを入力する必要がありました。このように、コンピューターを3分間中断した後でも、デスクトップに直接アクセスできました。
UTF-8

それについてすみません、私は一歩を忘れました。
BJsgoodlife

これにより、OPが指定されてサスペンドが開始された後、所定の時間、コンピューターがロック解除状態のままになることはありません。実際、サスペンドが開始されるとすぐにロックされます。
b_laoshi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.