Linux でユーザー アクセスを制限する

Linux でユーザー アクセスを制限する

以下の詳細を持つ新しいユーザーを作成しています:

useradd -d /var/www/html/testuser.com -G users testuser

ユーザーに新しいパスワードを作成し、SSH 経由でログインを試みると、/var/www/html/testuser.com にアクセスしますが、ディレクトリに戻ることはできます。ユーザー権限を制限して、testuser.com とその兄弟ディレクトリ内のコンテンツのみを管理できるようにし (通常の操作はすべて実行できるように)、ユーザーがディレクトリ内を戻って実質的にルート アクセスできないようにしたいと考えています。

答え1

ユーザーは、他のディレクトリを参照できるからといって、「事実上ルート アクセス権を持っている」わけではありません。シェル アクセスを持つすべてのユーザーは、ソフトウェアのインストールを参照できます。これは、さまざまなサイトからダウンロードできるため、結局のところ機密情報ではありません。すべてのシェル ユーザーに公開したくないディレクトリがある場合は、適切に制限された権限を付与します。

安全性をさらに高めたい場合は、アカウントの制限をさらに厳しくすることができます。これらのユーザーに のファイルを閲覧、アップロード、ダウンロードすることだけを許可したい場合は/var/www/html/testuser.com、シェルアカウントではなく、SFTPのみを使用できる制限付きアカウントを与えてください。sshd_configブロックを使用しますMatch。(Matchディレクティブは次のMatchディレクティブまたはファイルの末尾まで拡張されるため、これをファイルの末尾に配置します。)

Match User testuser
    Force-command internal-sftp
    ChrootDirectory /var/www/html/testuser.com

ユーザーにscpやrsyncなどのいくつかのコマンドの使用を許可したいが、一般的なシェルアクセスは許可したくない場合は、次のようにします。rsshまたはscponly のみアカウントのシェルとして rssh または scponly をインストールして設定し、許可するコマンドを指定します (SCP 用のシェルは必要ですか?)。

いくつかのホワイトリストに登録されたプログラムのみを実行できるシェルアカウントを付与したい場合は、そのシェルを制限されたシェルこれらのユーザーは、ファイル権限に基づいて、ホーム ディレクトリ外のファイルにアクセスできることに注意してください。

完全なシェルアクセスを許可したいが、ホームディレクトリ以外のすべてを非表示にしたい場合は、何らかの形式を作成する必要があります。刑務所最も弱い形の刑務所はchroot 刑務所は、ユーザーをディレクトリツリーのブランチに制限します。ユーザーを chroot に制限するのは で指定するのと同じくらい簡単ですChrootDirectorysshd_configただし、ユーザーは jail から出られないため、ディレクトリにはユーザーが使用するすべてのプログラムとそのデータが含まれている必要があります。バインドマウントいくつかのディレクトリ (例/usr) を jail 内で表示できるようにします。

答え2

man 5 sshd_configオプションをご覧くださいChrootDirectory

答え3

権限を変更して、/var/www/htmlルートのみがファイル/フォルダーを表示/変更できるようにすることができます。

のように:

chown root:root  /var/www/html

関連情報