システムのセキュリティは大きな懸念事項です。システム管理者として、私が前に述べたように、それはあなたの主な関心事です。システムにユーザーを追加すると、セキュリティが低下します。あなたの仕事は、ユーザーにとって使いやすく安全な環境を作ることです。保護する企業資産、維持するシステム、満足するユーザーがいます。ご存知のように、システム管理のこれら3つの側面の間にはしばしば矛盾があります。 3つすべてを満たす1つの方法は、企業標準を実装および適用することにより、ユーザーの環境をカスタマイズすることです。ユーザーの生産性とシステムセキュリティのバランスをとることは簡単ではありません。特定の状況に合わせて仕様を書くことはできませんが、必要な変更を加える場所を示して、それができるようにすることはできます。
この記事では、/etc/skel
にあるファイルを使用してユーザーの環境をカスタマイズする方法について説明します。 および/etc/profile.d
ディレクトリ。システムを新しくインストールすると、 / etc / skel:の下に3つのファイルがあります。 .bash_logout
、.bash_profile
、および.bashrc
。システムで新しいユーザーアカウントを作成すると、これら3つのファイルがユーザーのホームディレクトリにコピーされ、ユーザーが所有します。わからない場合は、いわゆる dot ファイル(前にドット(。)が付いた名前のファイルは、標準のファイルリストから非表示になります。ファイルを表示するには、-a
を使用する必要があります。 lsコマンドで切り替えます。
-rw-r--r--. 1 root root 18 Mar 31 21:17 .bash_logout
-rw-r--r--. 1 root root 193 Mar 31 21:17 .bash_profile
-rw-r--r--. 1 root root 231 Mar 31 21:17 .bashrc
ご覧のとおり、これらのファイルはrootが所有しており、rootユーザーのみが編集または変更できます。
.bash_profile
.bash_profile
ファイルは、リストされている3つのファイルの中で最も重要です。これは、リスト内の唯一の「必須」ファイルであるため、最も重要です。ユーザーがシステムにログインするたびに実行され、.bashrc
を起動します。 ファイルを作成し、PATH変数を定義してエクスポートします。デフォルト設定はシンプルです。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
.bash_profile
カスタムシェルプロンプトを定義したり、選択したエディターを定義したり、ユーザーのファイルに配置したいその他のものを定義したりするためにも使用できます。
[次のこともお勧めします:Linux環境変数のヒントとコツ]
.bashrc
.bashrcファイルの内容は、デフォルトでは、/etc/bashrc
のみを呼び出します。 ファイル。 /etc/bashrc
ファイルは、すべてのユーザーに対して構成できる設定で構成されています。
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
特定のユーザーグループ用に構成された他のファイルを呼び出すこともできます。たとえば、ユーザーが財務グループのメンバーである場合、ファイルを呼び出して、財務グループのすべてのユーザーに特定の変数のセットを設定できます。
/ etc/bashrcおよび/etc/ profile
/etc/bashrc
のリスト この会場には長すぎますが、それを見て、それが何をするのかを見ることができます。 /etc/bashrc
ファイルは/etc/profile
を参照します その他の環境変数と設定については、ファイルを参照してください。どちらのファイルにも次の警告があります。
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
つまり、ユーザー環境のカスタマイズは思ったほど簡単ではありません。
/etc/profile.d
/etc/profile.d
にファイルをリストする場合 、次のように表示されます:
-rw-r--r--. 1 root root 771 Mar 31 21:50 256term.csh
-rw-r--r--. 1 root root 841 Mar 31 21:50 256term.sh
-rw-r--r--. 1 root root 196 Mar 24 2017 colorgrep.csh
-rw-r--r--. 1 root root 201 Mar 24 2017 colorgrep.sh
-rw-r--r--. 1 root root 1741 Aug 6 2019 colorls.csh
-rw-r--r--. 1 root root 1606 Aug 6 2019 colorls.sh
-rw-r--r--. 1 root root 80 Mar 31 23:29 csh.local
-rw-r--r--. 1 root root 1706 Mar 31 21:50 lang.csh
-rw-r--r--. 1 root root 2703 Mar 31 21:50 lang.sh
-rw-r--r--. 1 root root 123 Jul 30 2015 less.csh
-rw-r--r--. 1 root root 121 Jul 30 2015 less.sh
-rw-r--r--. 1 root root 81 Mar 31 23:29 sh.local
-rw-r--r--. 1 root root 164 Jan 27 2014 which2.csh
-rw-r--r--. 1 root root 169 Jan 27 2014 which2.sh
多くのファイルがCシェルで使用されていることがわかります。この記事の焦点として最も重要なファイルはsh.local
です。 。 sh.local
の内容 以下にリストされています。
#Add any required envvar overrides to this file, it is sourced from /etc/profile
メッセージからわかるように、現在構成されているenvvar(環境変数)エントリを企業標準で上書きする場合は、このファイルにエントリを作成してください。
警告
ユーザーが自分の環境やGoogleのことについてさらに学ぶにつれて、ユーザーは自分自身をカスタマイズします。多くの場合、ユーザーは不利益を被ります。自由放任主義のシステム管理者と強引な独裁者のシステム管理者との間でバランスを取る必要があります。ユーザーの生産性を高めながら、自分の環境をある程度制御できるようにする必要があります。双方を満足させるための私の提案は、すべての企業標準ユーザー環境パラメーターを/etc/bashrc
に設定することです。 および/etc/profile.d/sh.local
編集または変更したくないこと。
/home/user/.bash_profile
であることを認識してください 、.bashrc
、および.bash_logout
ユーザーが編集可能なファイルです。これを回避する唯一の方法は、アカウントを作成した後、rootユーザースクリプトを使用してこれらのファイルのアクセス許可を変更することです。つまり、ユーザーアカウントを作成した後でスクリプトを実行して、/home/user/.bash*
の権限を変更します。 root: rw-r--r--
。ユーザーはファイルを変更できなくなります。
.bash*
を変更して環境をロックダウンする場合 ファイルをルート所有権にすると、/etc/skel
に新しいファイルを作成できます。 .user
など ユーザーが編集して.bash_profile
に含めることができるファイル ファイル。
[セキュリティについてもっと知りたいですか? ITセキュリティとコンプライアンスのチェックリストを確認してください。 ]
まとめ
ユーザーの環境をカスタマイズすることで、システムのセキュリティを強化し、ユーザーに表示される内容とシステムとの対話方法を標準化できます。本番システムへのシェルアクセスを許可することには独自の意味がありますが、ユーザーの生産性を最大化し、システムのセキュリティを最大化するには、ユーザーにリソースを提供する必要があります。その完璧なバランスを見つけたら、EnableSysadminの記事にそれを書き込んでください。私自身の経験では、すべてのユーザーは、自分たちが企業標準の例外であると感じており、まもなく、多数の例外が発生し、企業標準はまったくなくなります。