コマンドラインを使用してログイン画面のロックを解除します


30

コマンドラインから13.04 Gnomeシェルログイン画面のロックを解除することはできますか?ユーザーがGnomeシェルにログインしています。このユーザーとしてコンソールにログインできます。ルートアクセスもあります。

これは、パスワードを入力せずに、VNCを介してアクティブなX11ディスプレイにアクセスするためのものです。

実行中

gnome-screensaver-command -d

ブログ投稿で示唆されているように、助けにはなりませんでした。

ログイン画面


sshは出力やエラーを投げますか?
ブライアム

@ブライアム:私はできるssh、それは問題ではない。これは、VNCを介してアクティブなX11ディスプレイにアクセスするためのものですが、パスワードを入力する必要はありません。
krlmlr

回答:


33

最近のLinuxシステムsystemd(Ubuntu 16.04以降など)があると仮定しています。

独自のセッションのロック解除する必要がある場合は、実行するだけloginctl unlock-sessionです(独自のセッションなのでrootは不要です)。複数のセッションがあり、1つだけを選択する場合は、実行loginctl list-sessionsしてセッションを識別し、次にを実行しloginctl 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で機能する唯一の回答です。
レモンスクイズ

どうやらsudoの必要はありません
lemonsqueeze

1
sudoすべてのセッション(ユーザーIDで実行されていないセッションを含む)のスクリーンセーバーのロックを解除する場合に必要です。
ミッコランタライネン

の最後sにも注意してくださいunlock-sessions。自分のセッションのみのロックを解除する場合は、単に実行しますloginctl unlock-session
ミッコランタライネン

2
それは受け入れられた答えであるべきです!
ブライス

16

gnome-screensaver-commandSSHセッションなどからコマンドを実行する際の問題は、通常、アクティブなデスクトップセッションに適切なセッションバスに自動的に接続しないことです。通常、DISPLAY変数を設定すると、たとえば、ロックされたXセッションを所有する同じユーザーとしてSSHを実行します。これは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でテストしました。機能しません。画面の空白を解除しますが、画面はロックされたままです。
カスペルド

5

次は私のために働いた:

sudo killall gnome-screensaver

別のユーザーでSSH経由でログインしている場合に特に役立ちます。


キーボードがロック解除画面で入力されていないときにこの問題が発生しましたが、CTRL + ALT + F3を使用して端末に切り替えることができ、このスクリーンセーバーキラーが役立ちました。それから、Ctrl + Alt + F2をロックされたセッションに戻しました:)
jave.web

これは、X2Goがロック画面を表示し、応答しない場合に機能します:)
エンドリス

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に強制的にログアウトさせることなく、デスクトップアプリに戻ることができました。


おかげで、再起動がgnome-shellうまくいくかどうか試してみます。
krlmlr 14年

1

ロック解除画面が時々キーボード入力を受け入れないという同様の問題がありました。最終的に解決したのは、実行中の複数の gnome-screensaverプロセスと1つのgnome-screensaver-dialogプロセスを強制終了することでした。私は、2つのgnome-screensaverセッションを生成するプロセスがロック解除画面を台無しにしていたと推測しています。私は実際に代わりにxscreensaverを使用することになっているので、多分それは台無しになります。

とにかく、Ctrl+Alt+F1実行中のスクリーンセーバープロセスを探し、ps -aux | grep screenそれらをすべて強制終了します。他の回答にリストされているgnomeおよびxscreensaverコマンドは、私にとってはうまくいきませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.