Как автоматически выполнить скрипт при входе в gdm для всех пользователей?

8

Какой файл я должен изменить, чтобы выполнить некоторые инструкции, когда любой пользователь входит в систему через gdm?

Я пытался, /etc/bashrcно это выполняется только при запуске bash (и каждый раз, когда Xterm открыт). Я хотел бы выполнить что-то только один раз, когда пользователь входит в систему.

Что я хочу сделать, так это «сбрасывать» некоторые пользовательские настройки каждый раз, когда пользователь входит в систему (включая оконный менеджер), поэтому сценарий должен быть запущен до инициализации WM.

Богдан
источник
4
Почему вы хотите так раздражать своих пользователей?
Кит

Ответы:

8

Решение, которое мне кажется наиболее подходящим, - это редактирование /etc/gdm/PostLogin/Default. Это выполняется сразу после входа пользователя в систему с помощью gdm. Как раз то, что я хотел.

Богдан
источник
1

В Debian и его производных вы можете изменять /etc/profile, но не думайте, что он универсален.

enzotib
источник
Это только для входа в оболочку - и ОП указал, что он не заинтересован в таком решении.
rozcietrzewiacz
1
@rozcietrzewiacz: это также работает для логинов GDM, потому что это читает /etc/profile(см. /etc/gdm/Xsession). Я думаю, что это не общее правило для всех мастеров.
энзотиб
Хм ... Может быть, я не знаю - но вы проверяли, когда еще это происходит? Конечно, можно провести некоторое тестирование настройки входа в систему, но тогда вам следует подробнее описать этот подход.
rozcietrzewiacz
0

Со страницы руководства:

Когда bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / 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, установите WM в ~ / .xinitrc и запустите "startx" из вашей конфигурации bash.

Руфо Эль Магуфо
источник