web-dev-qa-db-ja.com

ユーザーを自分のホームディレクトリに制限する

Sudoも使用できるユーザーがいます。彼のホームディレクトリへのアクセスのみを制限したい。他には何もありません。私は 'limited'グループを作成し、彼をこのグループに移動しました。それで?

彼のホームディレクトリへのアクセスのみをどのように制限しますか?

5
KawaiKx

特定のアクセスを防ぐのは、デフォルトですべてのアクセスをブロックし、アクセスの種類ごとに特定の例外を追加するよりもはるかに困難です。 原理 にはキャッチーな用語もあります。したがって、Sudoを介して実行できるコマンドが明示的に指定されていることを確認し、ユーザーがそれを使用してrootにならないようにします。これが行われた後、いくつかの選択肢があります。

  • ディレクトリのアクセス許可を制限します(option1)。ルート内のすべてのディレクトリ(/)システム上のディレクトリで、他の実行ビットがオフになっている permission グループ。これは通常、次のようなものを実行することを意味します。

    $ chmod o-x <dir>
    

    上記がすでに実行されているが、このユーザーがメンバーであるグループ(質問ごとに少なくともlimitedグループ)があるすべてのディレクトリについても同じようにします。これは実行することを意味します:

    $ chmod g-x <dir>
    

    主要な最上位ディレクトリのディレクトリ実行許可を変更するこの変更は実用的ではない可能性があります。ディレクトリを変更できるかどうかに依存する重要なプロセスが存在する可能性があります(例:/または/var)複雑な権限設定なし。しかし、少なくともいくつかのprivateディレクトリに対してこれを行うことができます。

  • chroot jailを使用します(オプション2)。私は現実的なオプションは、ユーザーがログイン直後に制限された環境で情報を取得できるようにchroot jailを使用することです。 chroot環境のセットアップとは別に、OpenSSHサーバーも適切に構成する必要があります。これは、システムへのアクセスがssh経由でのみ利用可能であることを前提としています。あるいは、議論されたJailkit here を使用することもできます。

4
tejus

Unixでは、最も基本的なことを行うためにも、さまざまなリソース(実行可能ファイル、ライブラリ、構成ファイル、マニュアルページ、例など)にアクセスする必要があります。 cp(1)ls(1)のような「通常のコマンド」と見なされるものでさえ、それらにアクセスできる必要があるユーザーによって実行される通常のプログラムです。ユーザー必要多くのシステムへのアクセス。システムを役に立たない状態にすることなしに遮断することはできません。

ユーザーが他のユーザーのファイルをあちこち見られないようにしたい場合は、ユーザーホームの(現在は従来の)Linux構成で対応できます。JoeSixpackのユーザーはjoeです。名前joeとプライマリグループjoeのアカウント(UID)が彼のために作成され、彼の家はjoeとグループjoeによって所有され、権限が付与されますお気に入り dwrx------(つまり、joeは読み取り、書き込み、検索ができます。グループjoeには、Joe以外は誰もいません。他の誰も何もできません)。

2
vonbrand