web-dev-qa-db-ja.com

Linuxでユーザーがログインする前にコマンドを実行する方法

これは私がいくつかのLinuxフレーバーで何度か見た質問ですので、徹底的に試してみましょう。
ユーザーがデスクトップセッションにログインする前後にスクリプト/コマンド/プログラムを実行する方法は何ですか?

5
Kiwy

前書き

ユーザーがグラフィカル環境にログインする前にプログラムをグラフィカル環境で実行するかどうかは、ディスプレイマネージャーによって異なります。ログインインターフェースを提供し、ログインするとグラフィカル環境をセットアップするディスプレイマネージャーが担当します。
最も重要なものは次のとおりです。

  • [〜#〜] gdm [〜#〜] はGNOMEディスプレイマネージャーです。
  • LightDM はクロスデスクトップディスプレイマネージャーであり、任意のツールキットで記述されたさまざまなフロントエンドを使用できます。
  • [〜#〜] lxdm [〜#〜] はLXDEディスプレイマネージャーですが、LXDEデスクトップ環境から独立しています。
  • [〜#〜] sddm [〜#〜] は、X11とWaylandの最新のディスプレイマネージャーであり、高速、シンプル、美しいことを目指しています。

ユーザーがログインする前にディスプレイマネージャーがポップアップするときのコマンドの実行を設定する方法と、誰かが最終的にログインしたときに何かを実行する方法を確認します。

どちらを実行しているかわからない場合は、次の質問を参照してください。
ディスプレイマネージャが何であるかを教えてくれる簡単なLinuxコマンドはありますか?

[〜#〜]重要[〜#〜]
始める前に、execute commandをrootと指定している場合を除いて、ファイルを編集します。あなたが何をしているのかを知っていて、それらのファイルに何を入れるか注意する場合を除いて、それらのファイルの既存のものを削除しないでください。これにより、ログインできなくなる可能性があります。

GDM

GDMには注意してください。すべてのスクリプトはrootとして実行されます。0以外のエラーコードはログイン機能を制限する可能性があり、GDMはコマンドが実行される限り、スクリプトが応答しなくなるまで待機します。
完全な説明 ドキュメントを読む

ログイン前

ユーザーがログインする前にコマンドを実行する必要がある場合は、ファイルを編集できます。
/etc/gdm3/Init/Default
このファイルは、ディスプレイマネージャーがユーザーに表示される前に実行されるシェルスクリプトです。

ログイン後

ユーザーがログインした後、セッションが初期化される前に実行する必要がある場合は、ファイルを編集します。
/etc/gdm3/PostLogin/Defaultセッション初期化のセッション(env、グラフィカル環境、ログイン...)の後にコマンドを実行する場合は、ファイルを編集します。
/etc/gdm3/PreSession/Default

LightDM

/etc/lightdm.conf.d/*.confではなくlightdm.confについて説明します。重要なのは、使用できるオプションを知ることです。 lightDMには注意してください。すでに他のいくつかのスクリプトが開始されている可能性があるため、編集する前に構成ファイルを正確に読み取る必要があります。また、これらのスクリプトを配置する順序は、セッションのロード方法に影響を与える可能性があります。

ログイン前

LightDMの動作は他のものとは少し異なります。メインの構成ファイルにオプションを配置して、実行するスクリプトを示します。
メインのlightDM confファイルを編集します:
/etc/lightdm/lightdm.conf
行を追加greeter-setup-script=/my/path/to/script
このスクリプトは、lightDMがログインインターフェースを表示したときに実行されます。

ログイン後

編集できます/etc/lightdm/lightdm.confもう一度、行を追加します。
session-setup-script=/script/to/start/script
これにより、ユーザーが正常にログインした後、スクリプトがrootとして実行されます。

LXDM

ログイン前

ログインする前にコマンドを実行したい場合は、シェルスクリプトを編集できます。
/etc/lxdm/LoginReady

ログイン後

Rootとしてログインした後でコマンドを実行する場合は、シェルスクリプトを編集できます。
/etc/lxdm/PreLogin
そして、ログインしたユーザーとしてコマンドを実行したい場合は、スクリプトを編集できます:
/etc/lxdm/PostLogin

SSDM

それに関する適切な情報が見つかりませんでした...この部分を自由に編集してください。

13
Kiwy

ログインする前に、すべてのユーザーがマウスを利用できるようにマウスを構成する必要がありました。私はこれを読んでいる解決策を見つけました 質問 。 GDMによる構成を検討する必要があると思いましたが、セッションの開始時にセットアップするには、XDG自動開始を介して構成する必要がありました。/etc/xdg/autostartには、ログイン時にすべてのxsessions(私のubuntuシステム内)に対して実行される一連の.desktopファイルがあります。

0
kbenoit