Linux桌面应用如何设置正确的用户组顺序?
Linux桌面应用如何设置正确的用户组顺序?
哎,这个问题我太懂了!桌面应用确实不吃.bash_profile那一套,因为它根本不会启动登录shell,所以你之前加的newgrp完全没机会执行,自然应用里的组顺序还是原来的样子。给你几个靠谱的解决办法:
直接修改桌面启动文件的Exec命令
把原来的Exec行改成用bash包裹,先执行newgrp切换主组,再启动应用就行,写法如下:Exec=bash -c "newgrp group_a && /home/user/App"这样启动应用时,会先通过bash执行
newgrp切换到group_a作为主组,然后再启动你的App,应用内部就能拿到正确的组顺序了。用sg命令简化切换操作
如果你觉得上面的写法有点繁琐,可以用sg命令,它能直接让程序在指定组的环境下运行,写法更简洁:Exec=sg group_a /home/user/Appsg会帮你切换到group_a作为主组,然后启动应用,效果和第一种方法完全一样,但不用嵌套bash命令。全局修改用户默认主组(一劳永逸)
如果你希望不管是终端还是桌面应用,默认主组都是group_a,那可以直接修改用户的默认组(需要sudo权限):sudo usermod -g group_a 你的用户名修改完成后注销再重新登录,不管是终端里敲
groups,还是桌面应用内部的组顺序,都会是group_a在前。不过这是全局修改,如果你只是想让特定应用用这个组,前面两个方法会更灵活。
备注:内容来源于stack exchange,提问作者benjamin
相关产品推荐
相关产品推荐

