web-dev-qa-db-ja.com

RedHatユーザーのアクセスを1つのディレクトリに制限する

RedHat Gnu/Linuxを使用しています。10人のユーザーのグループがあり、それらすべてへのアクセスを制限したいと思います。これらを尊重したいルールは次のとおりです。

  1. ユーザーuser_iごとに、user_iという名前のフォルダーがあります。 user_iには、自分のディレクトリとその中のすべてのファイル/ディレクトリに対する書き込みおよび読み取りのアクセス許可が必要です。
  2. user_iがマシンに接続すると、デフォルトでuser_iディレクトリにいるはずです。
  3. 彼(ユーザーuser_i)は他のディレクトリやファイルを見ることができず、それらにアクセスできません。 user_iディレクトリは彼の「ルート」ディレクトリです。

グループを作成し、すべてのユーザーを作成してこの1つのグループに割り当て、すべてのフォルダーを作成しました。しかし、私はこれを超えて続行する方法がわかりません。

私はオンラインとこのウェブサイトを見ました。見つかったほとんどの結果は、SSHで接続しているユーザーの/etc/ssh/sshd_configの変更について話しているのに対し、私の場合はFTPとSFTP経由で接続する必要もあります。また、他のガイドでは、特定のグループのすべてのユーザーに1つの共有フォルダーへのアクセスを許可することについて説明していますが、すべてのユーザーにseparateフォルダーが必要なため、私の場合はそうではありません。

編集:

皆様のご交流と有益な情報に感謝いたします。混乱をお詫び申し上げます。ここで仕様を明確にします。

  1. user_iフォルダーは、すべてのユーザー専用に/ transfersディレクトリーに作成され、そのユーザー名にちなんで名付けられた新しいフォルダーです。したがって、階層は次のようになります。

    /  
    --transfers/ 
    ----user_i/ 
    ------received_data/
    ------archive_data/
    

    すべてのuser_iは、サブフォルダーreceived_dataおよびarchive_dataでデータの書き込みと読み取りを行います。彼は、一般的なLinuxディレクトリ、特に他のユーザーのディレクトリ(他の9 user_i)を含む、他のディレクトリにアクセスできません。

    サーバーに接続すると、デフォルトでuser_iフォルダーに移動するはずなので、2つのサブフォルダーreceived_dataarchive_dataのみが表示されます。

  2. すべてのuser_iは、それらのために特別に作成されたグループに属しています。

3
Sevigne

おそらく、sshd_configChrootDirectoryオプションを探しています。

ユーザーuser_iごとに、user_iという名前のフォルダーがあります。 user_iには、自分のディレクトリとその中のすべてのファイル/ディレクトリに対する書き込みおよび読み取りのアクセス許可が必要です。

これはchrootでは不可能です。セキュリティの脆弱性(CVE-2009-2904)になるため、ユーザーはchroot-されたディレクトリへの書き込みアクセス権を持つことができません。すべてのユーザーは、書き込み可能なchroot内に独自のディレクトリを必要とします。ファイルシステム階層は次のようになります。

directory -- owner:group permissions
/chroots/ -- root:root 700
  user_i/ -- root:root 700
    data/ -- user_i:chroot_users 700

sshd_configは次のようになります。

Match Group chroot_users
  ChrootDirectory /chroots/%u/

これにより、ユーザーが分離されます。ただし、これらのユーザーには、別々のディレクトリで実行するプログラムがないことに注意してください。 SFTPアクセスのみを許可できます。

Subsystem       sftp    internal-sftp

または、必要なプログラムをすべてのchrootにコピーします。たとえば、単純なbashの場合です。

cp --parents /bin/bash /chroots/user_i/
cp --parents `ldd /bin/bash | cut -d'>' -f2 | awk '{print $1}'` /chroots/user_i/
3
Jakuje