如何自动为所有用户在gdm登录上执行脚本?


8

当任何用户通过gdm登录时,我应该修改哪个文件以执行某些指令?

我试过了,/etc/bashrc但是在启动bash时会执行ony(并且每次打开xterm时)。我只想在用户登录时执行一次操作。

我要做的是每次用户登录(包括窗口管理器)时都“重置”一些用户首选项,因此该脚本应在WM初始化之前运行。


4
您为什么要这样烦扰您的用户?
基思

Answers:


8

最适合我的解决方案是进行编辑/etc/gdm/PostLogin/Default。这是在用户使用gdm登录后立即执行的。正是我想要的。


1

在Debian和衍生产品上,您可以修改/etc/profile,但不要认为它是通用的。


这仅用于shell登录-OP指出他对这种解决方案不感兴趣。
rozcietrzewiacz

1
@rozcietrzewiacz:这也适用于GDM登录,因为它读取/etc/profile(请参阅参考资料/etc/gdm/Xsession)。我认为,并非所有DM都有通用规则。
enzotib

嗯...也许是,我不知道-但是您是否检查了它的其他来源?当然,可以对登录设置进行一些测试,但是您应该再介绍一下这种方法。
rozcietrzewiacz 2011年

0

从手册页:

当bash作为交互式登录shell或具有--login选项的非交互式shell被调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动外壳程序时,可以使用--noprofile选项禁止此行为。

登录外壳退出时,bash从〜/ .bash_logout文件(如果存在)中读取并执行命令。

启动不是登录外壳程序的交互式外壳程序时,如果存在这些文件,则bash从/etc/bash.bashrc和〜/ .bashrc中读取并执行命令。使用--norc选项可以禁止这种情况。--rcfile file选项将强制bash从文件而不是/etc/bash.bashrc和〜/ .bashrc中读取并执行命令。

要更改用户的WM:卸载kdm / gdm / xdm / slim,在〜/ .xinitrc中设置WM,然后从bash配置中运行“ startx”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.