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

分享于 

3分钟阅读

ubuntu

  繁體

source discover_session_bus_addres.sh


以下是在Ubuntu 16.04和lightdm下工作的答案:

  • 让自己root访问位于下的.Xauthority,或者将其复制到您可以读取的位置并放弃您的root权限,或者只是保持root用户身份。
  • XAUTHORITY设置为指向该文件(例如,export XAUTHORITY=/var/lib/lightdm/.Xauthority )
  • DISPLAY设置为活动显示(export DISPLAY=:0 )

xdotool现在应该工作了。试试


xdotool type"My super secret password" 


xdotool key Return




下面是我使用的另一种解决方法,这很丑陋,但起作用,这种方法在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组)执行。

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



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





COM  COMM  Light  Comma  log  type  
相关文章