使用sudo运行vncserver后导致Ubuntu循环登录进入不了桌面的问题原因及解决办法

1 篇文章 0 订阅
1 篇文章 0 订阅

    因需要多人同时登录到机器人的Ubuntu主机调试,于是安装VNC,不记得N年以前怎么做的了,于是按照网上某文说的先:

sudo apt-get install xfce4(插一句:也可以安装xubuntu,不使用Ubuntu默认的unity桌面,而使用Ubuntu+xfce4或xubuntu是为了在vnc连接下远程操作桌面能性能好些,关于ubuntu xfce vs xubuntu的对比,请看https://www.lifewire.com/ubuntu-15-04-vs-xubuntu-15-04-2201174)、vnc4server、xdrp (或者sudo apt install xfce4 xfce4-goodies tightvncserver),这里步骤没问题,然后启动vncserver并设置vnc密码:

sudo  vncserver

再修改 ~/.vnc/xstartup文件(这个文件在安装完后是没有的,在启动vncserver时生成的,这就是为何需要先启动vncserver)

再重启vncserver和xrdp:

sudo vncserver -kill :1 
sudo vncserver
sudo service xrdp restart

上面步骤就有问题了!vncserver是启动了,在另外的机器人上安装的vnc viewer也可以登录连接上来了,但是在Ubuntu主机重启后,发现怎么也登录不进桌面了!输入口令后黑屏然后过一会儿又回到了登录界面,就是网上说的安装vnc后造成循环登录进不去桌面的问题,按CTRL+ALT+F2进入文本模式,然后登录进入后查看~/.xession_error文件,发现:

openConnection: connect: no such file or directory

cannot connect to brltty at :0

     后面一堆进程被kill的提示,查了一下网上别人遇到这个循环登录问题时的解决办法,说原因是vnc启动后把 ~/.Xauthority文件的owner:group改成了root:root,一查看还真是的,于是按CTRL+ALT+F2进入文本模式,然后登录进入,然后以su身份把owner和group改成平时登录用的用户,结果发现还是登录不了,给普通用户加chmod +w 也不行,为么?郁闷,不甘心,还有没有其他文件需要改?折腾了一阵其他办法没结果后,回头再仔细看了一下,~/下还有个.ICEauthority文件的owner也能改成了root,试着修改成普通用户,然后重启以普通用户登录,果然可以进入桌面了!也就是说,需要把/home/<user>/下的 .Xauthority和 .ICEauthority的owner:group都改成普通用户才行!

      那为何运行vncserver会把owner改掉呢?感觉应该是执行命令时使用了sudo的原因,网上查到一篇ubuntu下以sudo方式运行图形界面应用可能引起问题的文章:https://www.psychocats.net/ubuntu/graphicalsudo  说得非常明白,一般的graphical application以sudo方式运行的话没问题,有些就不行,会修改.ICEauthority的权限导致登录不进去桌面,需要使用gksudo或kdesudo来运行才没问题,对图形应用,作者建议不要使用sudo运行,唉,于是猛然记起来,其实不能以sudo运行图形应用这样的问题以前在使用Fedora时也遇到过,只是一下没想起来。 

      既然确认是sudo引起的祸害,那我不要它以普通用户身份启动vncserver就可以了?试了一下,确实可以,不会造成文件权限被修改问题,也就没有登录问题了。

     我猜测,那些在文章里向别人说以sudo vncserver启动vncserver的作者肯定始终是以root身份登录的,不然他们肯定会遇到上面的循环登录问题。

     附:卸载xfce4桌面图形化安装ubuntu-desktop Unity桌面和VNC Server的过程:    

#卸载掉xfce

apt-get update && apt-get upgrade
apt-get remove xrdp
apt-get  remove xfce4*
apt-get  autoremove xfce4*

#安装Unity桌面和用于VNC Viewer等终端等图形界面显示(如果不安装gnome-panel...这些包,VNC Viewer终端连到VNC Server后显示灰屏并且鼠标为x型)

apt-get -y install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal firefox

apt-get install xrdp vnc4server

vncserver              #先启动vncserver以生成~/.vnc/xstartup文件
vncserver -kill :1   
vi ~/.vnc/xstartup

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

保存xstartup文件后执行

vncserver :1

启动VNC Server后,即可使用VNC Viewer连接。

 

VNC输入登录密码后出现 failed to start session,这实际上是ubuntu-desktop没有安装,安装桌面:
apt-get install ubuntu-desktop
service lightdm restart

#解决root没有出现在登录界面
#vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
vi /usr/share/lightdm/lightdm.conf.d/50-unity.conf
greeter-show-manual-login=true
#restart Ubuntu
vi /root/.profile
tty -s && msg n ||true

#登录不了发现错误与pam_kwallet有关:

service lightdm statsus
PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory

查看/etc/pam.d/lightdm-greeter:   
auth    required        pam_permit.so
auth    optional        pam_gnome_keyring.so
auth    optional        pam_kwallet.so
auth    optional        pam_kwallet5.so

#解决办法
apt-get install libpam-kwallet4 libpam-kwallet5

Greeter start authentication for guest account 
Session: Failed during authentication
#解决办法:
rm ~/.Authority

 

#Unity VNC设置
export XKL_XMODMAP_DISABLE=1
查看/usr/share/gnome-session/sessions/下看桌面session的名称,假设是Ubuntu则将最后一行改为:
export STARTUP="/usr/bin/gnome-session --session=ubuntu"
$STARTUP

ubuntu16.04任务栏和菜单栏消失问题:
     1)sudo apt-get install compizconfig-settings-manager     #这个只适用于16.04之前的版本;
     2)重新安装desktop并不能解决问题。
     3)在https://askubuntu.com/questions/17381/unity-doesnt-load-no-launcher-no-dash-appears里的答案:
         删除 ~/.cache文件夹,重启可解决问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值