由于过于太菜,在Linux下编写gtk的一个界面程序的时候,从控制台启动这个程序的时候发现:如果是用一个普通用户创建的程序,但是在控制台中切换到root权限下去运行带界面的程序时,总是发现下面的提示,不过也能运行起来,所以一直也就没有在意,反正能运行。
(xdown:3362): GnomeUI-WARNING **: While connecting to session manager:
Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed.
Loading simple Config module ...
Creating backend ...
Loading socket FrontEnd module ...
Starting SCIM as daemon ...
后来发现有个大侠,说使用su命令是说道的,原来在su到root的时候 需要加一个减号”-“,这样才能把root的环境变量也带过去,所以这样一su,你就发现你当前的目录是在root的home目录里,然后在运行gtk的程序时就不会有问题了。更深一层次的原因应该是桌面系统的设置问题了,需要进一步考察了。
本文探讨了在Linux中使用普通用户编写的GTK程序遇到的启动问题,通过介绍如何使用-su-正确传递环境变量,解决了控制台以root权限运行时的AuthenticationRejected警告。文章深入剖析了这一现象背后可能涉及的桌面设置,为开发者提供了解决类似问题的路径。
1万+

被折叠的 条评论
为什么被折叠?



