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

2023-05-16

    因需要多人同时登录到机器人的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文件夹,重启可解决问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • MySQL事务

    1 事务性质 原子性 xff08 Atomicity xff09 xff1a 一个事务中的所有操作 xff0c 要么全部完成 xff0c 要么全部不完成 xff0c 不会结束在中间某个环节 一致性 xff08 Consistency xff
  • ROS中D435i的安装使用

    目录 D435i 安装ROS接口安装使用 Python接口安装opencv安装 xff08 相机标定 使用的依赖 xff09 D435i标定安装依赖标定发生的错误 D435i使用使用find object 2d检测2D物体 xff08 平面
  • win10远程桌面登录虚拟机Ubuntu

    在公司实习没事干 xff0c 想着折腾一下虚拟机 xff0c 于是用Windows win10 下的mstsc登陆一下虚拟机上的Ubuntu 14 04 桌面环境 顺便区别一下一般用telnet远程连接和使用桌面共享连接的区别 xff1a
  • octet和byte的差异

    在不严谨的前提下 xff0c byte和octet都表示为8 bits xff0c 但是严格意义上来讲 xff0c octet才是严格意义上的8 bits xff0c 而历史上的byte其实可以表示为4 bits 10 bits xff0c
  • 算法移植到STM32单片机中会遇到的一些问题

    最近完成了一些算法 xff0c 需要移植到STM32F4系列的板子上用作实际工程 xff0c 其中遇到了许多的问题 xff0c 下面记录一些调试bug的经验记录 1 编译没有问题 xff0c 但是调试运行时却会进入到某一函数无法运行 xff
  • 由chmod改系统文件权限引ssh登录报ssh_exchange_identification: read: Connection reset by peer无法登陆问题

    root用户下在给某个文件夹下的所有文件改权限的时候 xff0c 用了chmod R 命令 xff0c 咋一看这个命令没啥很正常 xff0c 也能执行 xff0c 但是后面的提示让人感觉很不对劲 xff0c 因为yang下文件没这么多 xf
  • mysql中find_in_set()函数的使用

    在做电商项目时 xff0c 不知你有没有遇到这样的一种情况 xff0c mysql数据库中商品表tb product里面有个字段type xff0c 它存储的是商品类型 xff0c 比如 1 xff1a 热门推荐2 xff1a 精选推荐3
  • shell设置变量与脚本返回值

    Linux中的本地变量和环境变量 本地变量 查看本地变量 set 设置本地变量 x 61 34 123 34 环境变量 查看环境变量 env 设置环境变量 x 61 34 123 34 export x 注意 xff1a 变量与等号 等号与
  • Docker 环境准备好这些,工作就完成了一半

    Docker官网yum源 xff1a http yum dockerproject org repo main 支持不同版本 1 span class token punctuation span 关闭防火墙 systemctl stop
  • 习题5-7 使用函数求余弦函数的近似值 (15 分)

    本题要求实现一个函数 xff0c 用下列公式求cos x 的近似值 xff0c 精确到最后一项的绝对值小于e xff1a cos x 61 x 0 0 x 2 2 43 x 4 4 x 6 6 43 函数接口定义 xff1a double
  • 6-12 二叉搜索树的操作集 (30 分)

    本题要求实现给定二叉搜索树的5种常用操作 函数接口定义 xff1a BinTree Insert BinTree BST ElementType X BinTree Delete BinTree BST ElementType X Posi
  • C++ CAS 操作

    C 43 43 中的 CAS 操作用于操作原子变量 xff0c 它是 atomic lt T gt 的成员函数 span class token macro property span class token directive hash
  • 习题6-6 使用函数输出一个整数的逆序数 (20 分)

    本题要求实现一个求整数的逆序数的简单函数 函数接口定义 xff1a int reverse int number 其中函数reverse须返回用户传入的整型number的逆序数 裁判测试程序样例 xff1a include lt stdio
  • 数据结构之各种常用结构体总结

    一 线性表 define MaxSize 100 表长度初始定义 typedef struct ElemType data MaxSize 或者指示动态分配数组的指针Elemtype data int length 数组最大容量和长度 Sq
  • 习题2.7 弹球距离 (15 分)

    设有一个球从高度为h米的地方落下 xff0c 碰到地面后又弹到高度为原来p倍的位置 xff0c 然后又落下 xff0c 再弹起 xff0c 再落下 请编写函数求初始高度为h的球下落后到基本停下来 xff08 高度小于给定阈值TOL xff0
  • 习题7-3 判断上三角矩阵 (15 分)

    上三角矩阵指主对角线以下的元素都为0的矩阵 xff1b 主对角线为从矩阵的左上角至右下角的连线 本题要求编写程序 xff0c 判断一个给定的方阵是否上三角矩阵 输入格式 xff1a 输入第一行给出一个正整数T xff0c 为待测矩阵的个数
  • python计算黑白图像像素值

    span class token function import span numpy as np span class token function import span cv2 span class token comment 读入图
  • python将文件夹中图像生成file list

    按行排列 xff0c 图像路径 span class token function import span os span class token function import span argparse span class token
  • Markdown插入图片 详细例子(本地图片,网络图片,base64) Windows

    网上一番搜索 xff0c 领略到基本所有回答 xff0c 都是一样的 xff0c 简简单单的介绍 而且 xff0c TMD xff0c 插入图片答案的本地路径 xff0c 都是回答的是Linux或Mac OS系统的路径 xff0c 诸如 x
  • Pixhawk学习笔记(2)——问题汇总

    1 遥控器校准时 xff0c 拨动摇杆 xff0c 上位机通道数据不变化 解决方法 xff1a PPM编码器上有一个跳线需短接 xff0c 短接后才可通过编码器对遥控器接收机供电 供电前PPM编码器模块上蓝灯快闪 xff0c 供电后变为慢闪

随机推荐

  • 在FPGA中使用Verilog实现I2C通信

    按照I2C标准的官方时序 可以看出时序看起来很简单 xff0c 不过它严格的按照时序要求来传送数据 xff0c 马虎不得的 xff0c 特别是起始和停止的条件 xff0c 起始必须要时钟线SCL为高电平时数据线SDA拉低 xff1b 而停止
  • Pixhawk学习笔记(5)——PX4FLOW光流传感器调试过程记录

    先使用qgc地面站查看光流图像及数据 xff0c 能看到不错的图像和波形 烧写官网固件后 xff0c 接入pixhawk飞控 xff0c 使用apm固件 xff0c 勾选启用光流 xff0c 超声波选用pix iic xff0c 在miss
  • 数据结构—布隆过滤器

    布隆过滤器可以快速地告诉你 xff1a 某个值一定不存在 xff0c 以及某个值可能存在 布隆过滤器是基于位图和哈希函数 xff08 如 xff0c MurmurHash xff09 来实现了 此处假设有两个哈希函数 hash 1 hash
  • PX4/Pixhawk---快速成为开发者(Windows)

    1 快速成为开发者入门教程 xff08 翻译 xff09 官方 1 1 编译环境 xff08 1 xff09 安装 MSysGIT 安装完成后 xff0c 配置GIT 安装注意 安装过程中除了下面一步外 xff0c 其他的步骤都采用默认安装
  • Cdence版图设计手册

    Cadence版图设计 工作站常用命令 一 在terminal窗口键入的基本命令 xff1a 1 ls xff1a 列出目录下所有文件 2 clear xff1a 清除terminal窗口里的内容 3 pwd xff1a 显示目前工作的目录
  • Pixhawk开发手册

    一 常见问题 xff1a 1 遥控器校准时 xff0c 拨动摇杆 xff0c 上位机通道数据不变化 解决方法 xff1a PPM编码器上有一个跳线需短接 xff0c 短接后才可通过编码器对遥控器接收机供电 供电前PPM编码器模块上蓝灯快闪
  • 浅谈四轴PID调试心得

    以下内容转自阿莫论坛 xff0c 写得很详细 xff0c 是调试大四轴的 小四轴调试也可参照着调 PID调试心得 本人不是自动化出身 xff0c 也没有受过专业训练 xff0c 都是自己摸索 xff0c 在这里浅述一下自己的PID参数整定心
  • rctimer二轴云台及云台控制板调试(Simple bgc 8位破解板)

    前段时间在鬼王家抢了rctimer的二轴云台和控制板 xff0c 感觉做工很精良 这几天有空了就调试下 整个过程比较容易 xff0c 首先要准备好usbisp烧写器 xff0c 和一根阶梯形的micro usb线 先刷bootloader
  • APM和PIX飞控日志分析入门贴

    我们在飞行中 xff0c 经常会碰到各种各样的问题 xff0c 经常有模友很纳闷 xff0c 为什么我的飞机会这样那样的问题 xff0c 为什么我的飞机会炸机 xff0c 各种问题得不到答案是一件非常不爽的问题 xff0c 在APM和PIX
  • 微电子及集成电路设计常用问题总结(考研面试向)

    mos管的沟道长度调制效应 xff1f 源极导致势垒下降 xff1f 衬底电流体效应 xff1f 衬底偏执效应 xff1f 速度饱和效应 xff1f 举例典型的trade off xff1f mos amp bjt的工作曲线 xff1f 加
  • YOLO详解

    转载自 xff1a https zhuanlan zhihu com p 25236464 从五个方面解读CVPR2016 目标检测论文YOLO Unified Real Time Object Detection 创新 核心思想 效果 改
  • 使用微信监管你的TF训练

    以TensorFlow的example中 xff0c 利用CNN处理MNIST的程序为例 xff0c 我们做了下面一点点小小的修改 1 xff0c 首先导入了itchat和threading两个包分别用于微信和县线程 xff08 因为要有一
  • 你应该知道的9篇深度学习论文(CNNs 理解)

    当时看到英文的博客 xff0c 本想翻译给感兴趣的同学们看看 xff0c 没想到已经有人翻译 xff0c 于是进行了转载 xff0c 留给自己和更多的人学习 xff0c 本文仅供参考 英文博客 xff1a https adeshpande3
  • JS笔记(==和===的介绍)

    61 61 和 61 61 61 介绍 61 61 关系运算符 等于 用于比较两个操作数是否相等的 相等为true xff0c 否则为false 61 不等于 61 61 61 xff1a 绝对等于 用于比较两个操作数是否相等的 相等为tr
  • 全国大学生电子设计竞赛B题感悟-优象光流篇

    今年是2019年电赛国赛年 xff0c 这本是是一个很好的机会冲击国家奖的 xff0c 但是由于个人视野太窄 xff0c 眼光不够长远而错失良机 今年测评结束的时候我就已经预感到了结果 xff0c 记得比赛前去提交作品的时候 xff0c 大
  • 滑模控制以及系统动力学与控制论(1)

    维基百科里是这样定义系统 System 的 System from Latin syst ma in turn from Greek syst ma is a set of entities real or abstract compris
  • 安装docker

    首先信任 Docker 的 GPG 公钥 sudo apt key adv keyserver hkp p80 pool sks keyservers net 80 recv keys 58118E89F3A912897C070ADBF76
  • 我的AI之路(39)--使用深度相机之小觅深度相机

    小觅深度相机的SDK代码在github上 小觅相机的支持库需要从这里https github com slightech MYNT EYE D SDK下载SDK源码后本地编译后再安装 xff0c Ubuntu上的步骤是 xff1a 1 如果
  • DeepSORT C++版的一个bug

    DeepSORT的官方python版实现是https github com nwojke deep sort xff0c C 43 43 版的DeepSORT中https github com shaoshengsong DeepSORT这
  • 使用sudo运行vncserver后导致Ubuntu循环登录进入不了桌面的问题原因及解决办法

    因需要多人同时登录到机器人的Ubuntu主机调试 xff0c 于是安装VNC xff0c 不记得N年以前怎么做的了 xff0c 于是按照网上某文说的先 xff1a sudo apt get install xfce4 插一句 xff1a 也