使用命令行解锁登录屏幕

krl*_*mlr 43 gnome command-line lock-screen

是否可以从命令行解锁 13.04 Gnome shell 登录屏幕?一个用户登录到 Gnome shell,我可以作为这个用户登录到控制台。我也有root权限。

这是为了通过 VNC 访问活动的 X11 显示器,而无需输入密码。

执行

gnome-screensaver-command -d
Run Code Online (Sandbox Code Playgroud)

正如博客文章中所建议那样没有帮助。

登录画面

Mik*_*nen 54

我假设您有一个最新的 linux 系统systemd(例如 Ubuntu 16.04 或更新版本)。

如果您需要解锁自己的会话,只需运行loginctl unlock-session(不需要 root,因为它是您自己的会话)。如果您有多个会话并且只想选择一个,请运行loginctl list-sessions以识别会话,然后运行 ​​eg loginctl unlock-session c187

如果您需要解锁所有会话,只需运行sudo loginctl unlock-sessions。请注意,无论哪个用户正在运行屏幕保护程序,这都会立即解锁所有会话。


如果您需要更多信息来识别正确的会话,您可以尝试以下操作:

loginctl list-sessions --no-legend | while read id rest; do echo; loginctl show-session $id; done
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一适用于 16.04 的答案 (3认同)
  • 另请注意“unlock-sessions”中的最后一个“s”。如果您只想解锁自己的会话,只需执行“loginctl unlock-session”即可。 (2认同)
  • 这应该是公认的答案! (2认同)

ste*_*ver 20

gnome-screensaver-command从 SSH 会话执行命令的问题通常是它们不会自动连接到活动桌面会话的适当会话总线 - 通常,设置 DISPLAY 变量将解决这个问题,例如这些对我有用(通过登录SSH 作为拥有锁定 X 会话的同一用户,位于 DISPLAY :0):

$ DISPLAY=:0 gnome-screensaver-command -d
Run Code Online (Sandbox Code Playgroud)

解锁,和

$ DISPLAY=:0 gnome-screensaver-command -l
Run Code Online (Sandbox Code Playgroud)

锁定。

或者,您可以使用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
Run Code Online (Sandbox Code Playgroud)

来源:https : //people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples


ros*_*sch 7

以下对我有用:

sudo killall gnome-screensaver
Run Code Online (Sandbox Code Playgroud)

当您与其他用户通过 SSH 登录时尤其有用。