ホームページ > システムチュートリアル > Linux > Linuxの特定のユーザーグループのバッシュプロンプトを変更する方法

Linuxの特定のユーザーグループのバッシュプロンプトを変更する方法

Joseph Gordon-Levitt
リリース: 2025-03-20 09:37:10
オリジナル
701 人が閲覧しました

LinuxでデフォルトのBASHプロンプトをカスタマイズする方法をすでに検討しました。このチュートリアルでは、LinuxおよびUnixのようなシステムの特定のユーザーグループのBashプロンプトを変更する方法を学びます。

カスタムバッシュプロンプトをユーザーグループに設定する前に、このアプローチの利点と短所を理解することが重要です。

目次

グループ固有のコマンドプロンプトの利点と短所

Linuxでグループ固有のコマンドプロンプトを使用することは、特定のシナリオで有利になる可能性がありますが、いくつかの考慮事項もあります。ここに利点と短所があります。

利点

1.ユーザーの役割の簡単な識別

  • グループメンバーシップに基づいてコマンドプロンプトをカスタマイズすることにより、作業中の役割や環境を識別するのが簡単になります。たとえば、開発者プロンプトは、開発者グループまたは環境に属していることをユーザーに即座に通知します。

2。エラーの削減

  • カスタムプロンプトは、特にユーザーが複数のロールまたはサーバーを切り替える環境で、エラーの削減に役立ちます。たとえば、管理者ユーザーにとって明確なプロンプトは、より高いレベルの権限を思い出させ、注意を促すことができます。

3。ユーザーエクスペリエンスの強化

  • 複数のグループに属しているユーザーの場合、カスタマイズされたプロンプトは、現在のグループを明確で視覚的に示すことを提供し、端末をより有益でユーザーフレンドリーにすることでユーザーエクスペリエンスを向上させます。

4.マルチユーザーシステムで役立つ

  • 多くのユーザーがいるシステムでは、このようなカスタマイズは、ログインしたユーザーのタイプとそのアクセスレベルをすばやく識別するのに役立ちます。これは、システム管理者にとって有益です。

短所

1。管理の複雑さ

  • カスタムプロンプトの実装と管理は、特に多数のユーザーまたはグループを持つシステムに複雑さを追加することができます。追加のスクリプトと構成が必要です。

2。誤解の可能性

  • 適切にセットアップされていない場合、そのようなスクリプトは誤解につながる可能性があります。たとえば、.bashrcに誤ってアプリを行うと、ユーザーの環境に影響を与える可能性のある不要な繰り返しや構文エラーさえもつながる可能性があります。

3。セキュリティ上の考慮事項

  • .bashrcのような構成ファイルに自動的にアプリがある場合、正しく処理されないとセキュリティリスクになる可能性があります。そのようなスクリプトがセキュリティの脆弱性を誤って開かないようにすることが重要です。

4。グループメンバーシップへの依存

  • この方法は、ユーザーのグループメンバーシップに依存しており、時間とともに変化する可能性があります。グループメンバーシップが適切に管理され、最新の状態であることが必要です。

5。視覚的な手がかりに依存する

  • ユーザーは、これらの視覚的な手がかりで過度に依存し、プロンプトのみに基づいて特権や環境について誤った仮定を行う可能性があります。これは、特にプロンプ​​トの構成に問題がある場合、エラーにつながる可能性があります。

要約すると、グループメンバーシップに基づいてコマンドプロンプトをカスタマイズすることは、ユーザーエクスペリエンスの強化とマルチユーザーまたはマルチロール環境でのエラーの削減に役立ちます。ただし、複雑さ、誤解、および潜在的なセキュリティの問題を回避するために、慎重な実装と管理が必要です。

先に進んで、LinuxおよびUnixのようなシステムの特定のユーザーグループのコマンドプロンプトを変更する方法を見てみましょう。

次の手順は、Ubuntu 22.04 LTSシステムでテストされました。この方法が他のLinux分布でも機能することを願っています。

特定のユーザーグループのバッシュプロンプトを変更します

デモンストレーションのために、 「開発者」と呼ばれる新しいグループと「Senthil」という名前の新しいユーザーを作成します。そして、 「Developers」グループに「Senthil」ユーザーを追加します。

その結果、「Senthil」ユーザーがログインするたびに、プロンプトは自動的に「開発者Senthil@ubuntu2204:〜$」に変更されます。段階的に行う方法を見てみましょう。

ステップ1- Linuxでグループを作成します

グループを作成します

次のコマンドを実行して、開発者という新しいグループを作成します。

 $ Sudo GroupAdd開発者
ログイン後にコピー

このコマンドは、開発者と呼ばれる新しいグループを作成します。プロンプトが表示されれば、パスワードを入力する必要がある場合があります。

ステップ2-新しいユーザーを追加してグループに割り当てる

新しいユーザーを作成します

Senthilという名前の新しいユーザーを作成するには、コマンドを使用します。

 $ sudo adduser senthil
ログイン後にコピー

新しいユーザーのパスワードを設定し、オプションのユーザー情報を入力するように求められます。必要に応じてこれらを入力してください。

ユーザーをグループに追加します

開発者グループにSenthilを追加するには、以下を使用してください。

 $ sudo usermod -ag開発者Senthil
ログイン後にコピー

-AGオプションは、既存のグループメンバーシップを維持しながら、ユーザーをグループに追加します。

ステップ3-特定のユーザーグループにカスタムバッシュプロンプトを設定します

特定のグループのメンバーであるユーザーのコマンドプロンプトを変更する場合、ユーザーのグループをチェックしてプロンプトを変更するスクリプトを配置する場所に2つのオプションがあります。選択は、1人のユーザーまたは複数のユーザーに変更を適用するかどうかによって異なります。

個々のユーザーの.bashrcファイル

  • 変更を特定のユーザーにのみ適用する場合は、ホームディレクトリ(〜/.bashrc)にあるユーザーの.bashrcファイルに行を追加する必要があります。
  • このアプローチはユーザー固有です。この変更を適用したい各ユーザーは、自分の.bashrcファイルにスクリプトを追加する必要があります。
  • たとえば、Senthilのみが開発者グループの一部であるときに別のプロンプトを持たせたい場合は、Senthilの.bashrcファイルにのみ行を追加します。

グローバル構成ファイル/etc/bash.bashrc

  • この変更をシステム上のすべてのユーザーに適用する場合は、Global /etc/bash.bashrcファイルを編集できます。
  • この方法は、すべてのユーザーの環境に変更を適用しますが、スクリプトは、指定されたグループにいるユーザーのプロンプトのみを変更します。
  • これは、グループに複数のユーザーがいて、個々の.bashrcファイルを編集せずにすべてのユーザーに同じ動作を必要とする場合に役立ちます。

ローカル〜/.bashrcまたはglobal/etc/bash.bashrcファイルに変更を加える前に、それらをバックアップすることを強くお勧めします。これにより、何かがうまくいかない場合は、元の設定を復元できます。

ユーザーの〜/.bashrcファイルをバックアップするには、実行します。

 $ cp〜/.bashrc〜/.bashrc_backup
ログイン後にコピー

グローバルbashrcファイルをバックアップするには、実行してください。

 $ sudo cp /etc/bash.bashrc /etc/bash.bashrc_backup
ログイン後にコピー

適切なBashRCファイルをバックアップした後、お気に入りのエディターを使用して開きます。

ここでは、この方法をシステム内のすべてのユーザーに適用するため、Global /etc/bash.bashrcファイルを編集します。

 $ sudo nano /etc/bash.bashrc
ログイン後にコピー

最後に次の行を追加します。

 bashrc_file = "/home/$(whoami)/。bashrc"
developer_prompt = 'ps1 = "developer- \ u@\ h:\ w \ $"'

#.bashrcにps1を追加または更新する関数
add_or_update_ps1(){
    prompt_line = $ 1
    grep -qf- "$ prospt_line" "$ bashrc_file" || echo "$ prompt_line" >> "$ bashrc_file"
}

id -ng "$(whoami)" | GREP -QW「開発者」;それから
    add_or_update_ps1 "$ developer_prompt"
fi
ログイン後にコピー

上記のコードを分解して、各オプションが何をするかを見てみましょう。

変数の定義

  • bashrc_fileは、ユーザーの.bashrcファイルへのパスを保持します。
  • Developer_Promptは、ユーザーのPS1文字列を開発者グループに属します。

関数add_or_update_ps1

  • この関数は、引数として迅速な行を取ります。
  • Grep -QFを使用して、正確なプロンプトラインが.bashrcに既に存在するかどうかを確認します。
  • - 後続の文字列がコマンドオプションとしてではなく、文字通りとして扱われることを保証します。
  • 存在しない場合(||)、プロンプト行は.bashrcに追加されます。

グループメンバーシップを確認し、プロンプトを適用します

  • スクリプトは、ユーザーが開発者グループにいるかどうかを確認します。
  • ユーザーが開発者グループに属している場合、developer_promptを使用してadd_or_update_ps1を呼び出します。

要約すると、このスクリプトは、.bashrcファイルにカスタムプロンプト定義を追加することにより、開発者グループに属するユーザーのコマンドプロンプトを変更します。重複を避けるために、カスタムプロンプトが一度だけ追加されることを保証します。

Ctrl oを押し続けてCtrl Xを続けてファイルを保存して終了します。

いずれかのファイルを編集した後、変更は新しいシェルセッションが開始されたときにのみ有効になることを忘れないでください。ユーザーはログアウトして戻ってくるか、現在のセッションでソース〜/.bashrcを実行してすぐに変更を適用できます。

コマンドを使用して変更を適用します。

 $ source /etc/bash.bashrc
ログイン後にコピー

ステップ4-バッシュプロンプトを確認します

ここで、ログアウトして、ユーザー「Senthil」としてログインします。ターミナルを開くと、ユーザーのプロンプトがこのようなものに変更されていることがわかります。

Linuxの特定のユーザーグループのバッシュプロンプトを変更する方法

システムにGUIがない場合は、SSHによって他のシステムからシステムにそれを確認できます。

開発者Senthil@ubuntu2204:〜$
ログイン後にコピー

Linuxの特定のユーザーグループのバッシュプロンプトを変更する方法

見る?ユーザーのBASHプロンプトが変更されました。

Sudo Groupメンバーシップに基づいて、Bashプロンプトを変更します

このスクリプトをさらに変更して、さまざまなタイプのユーザーを区別できます。

たとえば、LinuxのSudoグループに属している通常のユーザーと管理者ユーザーを区別できます。これには、ユーザーがSUDO特権を持っているかどうかに基づいてコマンドプロンプトを変更することが含まれます。

次の行をGlobal /etc/bash.bashrcファイルに追加するか、個々のユーザーの.bashrcファイルに追加します。

 bashrc_file = "/home/$(whoami)/。bashrc"
sudo_prompt = 'ps1 = "sudouser- \ u@\ h:\ w \ $"'
remorm_prompt = 'ps1 = "normaluser- \ u@\ h:\ w \ $"'

#.bashrcにps1を追加または更新する関数
add_or_update_ps1(){
    prompt_line = $ 1
    grep -qf- "$ prospt_line" "$ bashrc_file" || echo "$ prompt_line" >> "$ bashrc_file"
}

id -ng "$(whoami)" | grep -qw "sudo";それから
    add_or_update_ps1 "$ sudo_prompt"
それ以外
    add_or_update_ps1 "$ normal_prompt"
fi
ログイン後にコピー

このスクリプトは、プロンプトをSudouser- @hostname:〜$に変更します。Sudoグループのユーザーとnormaluser- @hostname> @hostname:$ $ sudoグループではありません。

これは推奨されるセットアップですか?

このセットアップが推奨されるかどうかは、システムのコンテキストとニーズによって異なります。

利点

  • クリアロール識別:グループ固有のプロンプトと同様に、このセットアップは、現在のユーザーセッションにSUDO特権があるかどうかを即座に識別するのに役立ちます。これは、マルチユーザー環境で特に役立ちます。
  • エラー防止:ユーザーの特権を絶えずリマインダーとして機能し、潜在的に高度な特権を伴う偶発的なコマンドを防止します。

短所

  • 複雑さとメンテナンス:カスタマイズと同様に、システム構成に複雑さの層を追加し、適切なメンテナンスが必要です。
  • 誤ったセキュリティの感覚:ユーザーは、セキュリティまたは自己満足の誤った感覚を開発する可能性があります。ただし、実際のアクセス許可はより微妙でコンテキスト依存しています。
  • 誤解の可能性:誤って実装されているため、混乱や誤解につながる可能性があります。

要約すると、コマンドプロンプトをカスタマイズして通常のユーザーとSUDOユーザーを区別することは、特にユーザー特権の迅速な識別が重要な場合、特定の環境で役立ちます。

ただし、複雑さを追加し、システム管理者の特定のニーズと管理機能に依存するため、普遍的に推奨されていません。

.bashrcファイルをデフォルト設定に復元します

問題が発生した場合、バックアップから.bashrcファイルを復元することで変更を戻すことができます。バックアップを作成しなかった場合は、ファイルをもう一度手動で編集して、前の手順に追加したカスタムスクリプトを削除またはコメントすることができます。

また、DebianおよびUbuntuシステムには/etc/skel/ディレクトリに.bashrcファイルのデフォルトバージョンがあります。

 $ ls -al/etc/skel/
合計32
DRWXR-XR-X 2ルートルート4096 1月8日18:02。
DRWXR-XR-X 138ルートルート12288 1月8日17:55 ..
-rw-r  -  r-- 1ルートルート220 2022年1月6日.bash_logout
-RW-R  -  R-- 1ルートルート4116 1月8日18:00<strong><mark> .bashrc</mark>
-rw-r  -  r-- 1ルートルート807 2022年1月6日.profile</strong>
ログイン後にコピー

〜/.bashrcファイルのデフォルトバージョンを以下のように現在のバージョンにコピーします。

 $ cp /etc/skel/.bashrc〜/
ログイン後にコピー

最後に、次のコマンドを実行して変更を更新します。

 $ source〜/.bashrc
ログイン後にコピー

詳細については、次のリンクを確認してください。

.bashrcファイルをubuntuのデフォルト設定に復元する方法

結論

このチュートリアルでは、特定のグループのユーザーにカスタムバッシュプロンプトを設定する方法、およびLinuxのコマンドプロンプトをサンプルスクリプトで変更する利点と短所について説明しました。

BASHプロンプトを変更することは、特定の環境での特定のニーズに役立ちますが、一般的に初心者にはお勧めしません。

これらの変更を実装する前に、このアプローチを仮想マシンでテストし、潜在的なリスクと複雑さに対する利点を比較検討することを常に習得することをお勧めします。

関連する読み取り:

  • LinuxでSudoプロンプトを変更する方法

以上がLinuxの特定のユーザーグループのバッシュプロンプトを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート