web-dev-qa-db-ja.com

非アクティブ化する代わりにgnome-screensaverのロックを解除します

だから、私は自分のマシン用のUSBキーを作成しようとしています。

インターネット上の多くの場所で説明されているように、PAM-Usbを使用しました(たとえば this one 。これは基本的にどこにでもコピーペーストされます)。私はそこで何が起こるかを理解しており、それはかなりきちんとしている。

私の問題は、(ボタンを使って、USBをオフにするか、gnome-screensaver-command -lで)画面をロックすると、gnome-screensaver-command -dがデスクトップに戻らず、モニターを目覚めさせます。私はまだパスワードを提供する必要があります-そして、私はUSBスティックを差し込むときにそれを望んでいません。

ロック解除時にパスワードプロンプトをオフにしたくありません。 USBスティックが差し込まれているときはいつでもコンピューターに自由にアクセスできるようにし、他の場合はパスワードでアクセスできるようにします。

だから、質問は次のとおりです:コマンドラインでgnome-screensaverのロックを解除するにはどうすればよいですか?

PS。おもしろいこと:USBキーを使用する場合、ログイン時にパスワードを入力する必要はありません。一方、ロック解除にはパスワードが必要です。なぜ起こるのかは理解していますが、それでも奇妙に見えます。

==編集==

私は忘れていました:私は(ユニティベースを意味する)プレーンなUbuntu 15.04を使用しています。スクリーンセーバー関連の変更は行われませんでした。

4
Filip Malczak

Ubuntu 14.04+はgnome-screensaverを使用しなくなったため、gnome-screensaver-command -dが機能しない可能性があります(おそらく、確信はありませんが、Ubuntuは古いgnome-screensaverを新しいものに置き換え、そのコマンドは現在動作しません) 。 dbusを使用してコンピューターをロックおよびロック解除できます。

ロック:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

ロック解除:

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

パスワードを要求せずにロックを解除する必要があります。

2
kurogetsusai

15.04では、ロック画面は単一で実装されます。

Libpam_usbは、それを使用するプログラムにすでにlibpamがロードされていることを(誤って)予期しているため、libpamと明示的にリンクされていないようです。これはほとんどのプログラム(つまり、sudo、lightdmなど)に当てはまりますが、compizには当てはまりません。 libpam-usbのmakefileの変更とそれを修正するには再コンパイルが必要です。

回避策として、/usr/share/applications/compiz.desktopを編集して置き換えることができますが

Exec=compiz

Exec=/bin/sh -c "LD_PRELOAD=libpam.so compiz"

0
user448115