ルートのみ仮想端末を切り替えることができます。

ルートのみ仮想端末を切り替えることができます。

私は現在CentOSシステム(Gnomeデスクトップを含む)を使用しており、許可されていないユーザーのコンソールの使用を無効にしたいと思います。実際、標準ユーザーとしてログインすると、私のアプリケーションが実行され、デスクトップにアクセスできなくなりますが、ユーザーはまだVTスイッチを使用していくつかのコマンドを実行できます。一方、管理者としてログインするとデスクトップが起動します。

私がやりたいことは、標準ユーザーがコマンドを実行するのを防ぎ、管理者がコマンドを実行できるようにすることです。

/etc/X11/xorg.confこれまでターミナル切り替え()を正常に無効にするように修正しようとしましたが、Option "DontVTSwitch" "True"すべてのユーザーがそれを使用できなくなりました。

質問:

あるユーザーにはVT切り替えを許可し、他のユーザーには無効にする方法はありますか?

答え1

あなたはそれを使用することができますpam_timePAMモジュールは、特定のtty(およびこのモジュールの主な目的である1日の特定の時間)の特定のユーザーへのログインを制限します。

したがって、rootを除くすべてのユーザーがtty0からtty7(つまり、通常アクティブなすべてのVT)にログインすることを許可されていないことをシステムに知らせるには、次の行を次の行に追加します/etc/security/time.conf

login ; tty0|tty1|tty2|tty3|tty4|tty5|tty6|tty7 ; !root ; !Al0000-2400

次に、最初accountの行またはその近くに次の行を追加します/etc/pam.d/login

account  required  pam_time.so

ユーザーはまだgdmログイン画面を使用してログインできます。ログイン前(またはログイン後)にVTに切り替えることはできますが、ログインとパスワードのプロンプトのみが表示されると、VTに正常にログインできません。

CentOS 6.6でテストされました。

答え2

CentOS 7を実行している場合、systemd-logindサービスはこの問題を処理できます。セッション移行管理とマルチシート管理を担当します。 loginctlコマンドはこれを制御します。以下の loginctl リンクには、利用可能なすべてのフラグがあります。

http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html http://www.freedesktop.org/software/systemd/man/loginctl.html

関連情報