web-dev-qa-db-ja.com

すべてのユーザーに対してgdmログインでスクリプトを自動的に実行するにはどうすればよいですか?

ユーザーがgdmを介してログインしたときに、いくつかの命令を実行するには、どのファイルを変更する必要がありますか?

私は試した /etc/bashrcしかし、それはbashを開始するとき(そしてxtermが開くたびに)に実行されます。ユーザーがログインしたときに一度だけ実行したいのですが。

私がやりたいのは、ユーザーがログオンするたびに(ウィンドウマネージャを含む)一部のユーザー設定を "リセット"することです。そのため、WMが初期化される前にスクリプトを実行する必要があります。

8
Bogdan

私にとって最もうまくいくと思われる解決策は、/etc/gdm/PostLogin/Defaultを編集することです。これは、ユーザーがgdmでログインした直後に実行されます。まさに私が欲しかったもの。

8
Bogdan

Debianと派生物では/etc/profileを変更できますが、それが普遍的だとは思わないでください。

1
enzotib

マニュアルページから:

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をアンインストールし、〜/ .xinitrcでWMをセットアップし、bash構成から「startx」を実行します。

0
Rufo El Magufo