如何从命令行输入 lightdm 登录屏幕?

如何从命令行输入 lightdm 登录屏幕?

我有一台配置了加密家庭的大硬盘电脑。碰巧的是,这台电脑也运行着我家的主要 Kodi 媒体中心。每次我的孩子想看电影时,我都必须打开它,然后将键盘物理连接到它,然后输入密码。

我很希望能够远程完成这件事。

当然,我也有该计算机的根访问权限。

我不愿意创建另一个具有自动登录功能的用户名,因为大多数媒体文件都是加密的,我希望它们保持这种状态。

用于在锁定屏幕上打字的正常组合export DISPLAY=0:source discover_session_bus_addres.shxdotool type my_secret_password在上不起作用lightm

答案1

以下是在 Ubuntu 16.04 下有效的答案lightdm

  1. 获得rootlightdm 的访问权限.Xauthority,它位于 下/var/lib/lightdm/.Xauthority。要么将它复制到你可以读取的地方并放弃你的 root 权限,要么保持 root 权限。
  2. 设置XAUTHORITY为指向该文件(例如export XAUTHORITY=/var/lib/lightdm/.Xauthority
  3. 设置DISPLAY为活动显示 ( export DISPLAY=:0)
  4. xdotool现在应该可以了。尝试

    xdotool type "My super secret password"  
    xdotool key Return
    

答案2

以下是我正在使用的解决方法。虽然它很丑陋和粗鲁,但如果自动登录选项有效,这种方法在 Wayland 和 GDM(Ubuntu 17.10)中也有效。

#!/bin/bash

# NAME: lightdm-auto-login

main() {
    # If the file '/etc/lightdm/lightdm.conf' exists create a backup copy
    [[ -f /etc/lightdm/lightdm.conf ]] && mv /etc/lightdm/lightdm.conf{,.bak}

    # Create autologin configuration for the current $USER = $1
    echo -e "[Seat:*]\nautologin-user=$1" > /etc/lightdm/lightdm.conf

    # Restart 'lightdm' while autologin option is enabled
    systemctl restart lightdm.service

    # Wait for a moment to complete the login process and remove the conf file
    sleep 30 && rm /etc/lightdm/lightdm.conf

    # Restore the backup if exists
    [[ -f /etc/lightdm/lightdm.conf.bak ]] && mv /etc/lightdm/lightdm.conf{.bak,}
}

# Execute the 'main()' function with root privileges in the background 'sudo -b'
# Pass the curent $USER as arg (https://unix.stackexchange.com/a/269080/201297)
sudo -b bash -c "$(declare -f main); main $USER"
  • 该脚本应以普通用户(属于 sudoers 组)的身份执行。

  • 该脚本将创建该文件的备份副本/etc/lightdm/lightdm.conf。然后它将生成一个带有自动登录选项的新配置文件,并为当前用户启用。此时lightdm将重新启动,用户将通过自动登录选项登录。最后将删除自定义配置并恢复配置文件的原始状态。

  • 如果正在使用 GDM:需要重新启动的服务是gdm3.service,需要更改的配置文件是/etc/gdm3/custom.conf

答案3

这对我来说很好(从 ssh,使用 lightdm):

$ XAUTHORITY=/var/lib/lightdm/.Xauthority DISPLAY=:0.0 sudo sh -c 'xdotool type "My Password" && xdotool key Return'

相关内容