提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Ubuntu18.04~Ubuntu22.04安装并配置VNC
这个教程是接着上面一篇文章的,之前遗留了一个问题,就是VNC启动绑定的是1000这个账户。一般这个账户都是你安装Ubuntu的时候创建的第一个除root外的账户,下面的教程我们会详细论述下之前没有解决的问题,就是VNC绑定id为1000的账户的自动登录问题。
一、GDM是什么?
GDM是计算机术语,全称The GNOME Display Manager,是GNOME显示环境的管理器,并被用来替代原来的X Display Manager。与其竞争者(X3DM,KDM,WDM)不同,GDM是完全重写的,并不包含任何XDM的代码。GDM可以运行并管理本地和远程登录的X服务器(通过XDMCP)。
因为一会要用到这个工具,所以这里先科普下。
二、VNC绑定GDM账户
在 Ubuntu18.04~Ubuntu22.04安装并配置VNC 这篇文章里我们VNC绑定的是1000这个账户,但是这里存在一个问题就是在/run/user/1000目录下并不是总是存在gdm这个文件夹,如果你没有通过图形界面登录进1000这个账户的话,/run/user/1000这个文件夹下是没有gdm的,只有你登录1000这个账户之后/run/user/1000文件夹下才会出现gdm,而且记住必须图形界面登录,ssh等远程登录是不行的。
看到了没有,以上图片就是我通过ssh登录后截取的/run/user/1000文件夹下面的情况,是没有gdm文件夹的。接下来我通过图形界面登录1000,gdm文件夹就出现了。
所以这个东西还是绕不过,也是出于安全的考虑。怎么解决这个问题呢,你比如有一种场景下,我会需要使用vnc,但是我又不能让1000设置为自动登录,这样会导致安全问题,这里有一个办法可以解决这个问题,但是又没有完美解决。请继续往下看。
1.vnc绑定gdm登录
修改x11vnc.service将1000改为125(此处为gdm的id,不通系统可能不一样,你需要看下gdm的id,方法如下:)
cat /etc/passwd | grep gdm
gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false
125就是我的系统的id,接下来修改x11vnc.service,将1000改为125,然后执行下面的命令
sudo systemctl daemon-reload
重启之后你不用自动登录都可以访问vnc了。使用vncviewer打开之后就可以看到1000账号的登录画面了。
这个时候/run/user/1000下面还没有gdm这个文件夹
接下来登录你的1000账号会出现黑屏,但是远程端已经登进去了,这是因为打开的桌面不属于gdm,属于1000。所以目前我们止步于黑屏了,接下来只需要把x11vnc.service里面的gdm改为1000就可以远程登陆了,远程端你只需要screen blank就行了,不需要logout
再去/run/user/1000下面去看,已经有gdm文件夹了。
关于这个问题我去x11vnc的官网兜了一圈,明确的一点是官网说明了这个问题的存在,主要还是认证方面的需要。
总结
方法不完美,但是又近了一步,这种方法可以解决远程无人值守的场景,我觉得也是有可操作性的。安全上肯定会比之前的好一些。
我还是继续研究下,看看能不能彻底解决不需要自动登录的问题。