命令行下su切换用户执行gsettings不生效问题

如题所述

第1个回答  2022-06-04
举个栗子
比如想通过ssh执行gsettings关闭ubuntu的放大镜快捷键

如果提示以上路径的权限问题,可以先chomd给下777的权限,然后再重新执行上面的gsettings set,最后通过gsettings get查看配置修改是否生效

可以看到执行gsettings set时权限不够的报错已经没有了,但是gsettings get返回的结果依然是系统默认的Alt+Super+8,快捷键并没有被去掉,也就是说gsettings set命令没有生效
通过一番baidu+google,发现可以加个dbus-launch的参数,如下

可以看到加上dbus-launch参数后,确实gsettings get出来的结果是生效了,so easy???
然而现实总是给人残酷的一击,用户session注销登出再重新登录,发现快捷键依然存在,重新ssh执行gsettings get发现配置又还原了

也就是说,通过dbus-launch这个参数修改的配置,不能在session中持久化,session销毁之后配置就被还原了。于是继续baidu+google...
又有大佬提示需要添加DBUS_SESSION_BUS_ADDRESS这个环境变量,具体细节不说了,直接上命令

执行成功,注销当前session重新登录再查看,配置依然是已修改的状态,重启主机,重新登录查看,配置还是修改后的状态,done!