RedHat ユーザーのディレクトリアクセスを制限します。

RedHat ユーザーのディレクトリアクセスを制限します。

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

  1. 各ユーザーにはuser_iというフォルダがありますuser_iuser_iそのディレクトリとその中にあるすべてのファイル/ディレクトリに対する書き込みおよび読み取り権限が必要です。
  2. user_iコンピュータに接続するときは、user_iメインディレクトリに自分自身を見つける必要があります。
  3. 彼(ユーザーuser_i)は他のディレクトリやファイルを見ることができず、それにアクセスする権限もありません。このuser_iディレクトリは彼の「ルート」ディレクトリです。

グループを作成し、すべてのユーザーを作成してグループに割り当て、すべてのフォルダを作成しました。しかし、どのように進むべきかわかりません。

オンラインとこのウェブサイトで確認しました。ほとんどの結果は/etc/ssh/sshd_configSSH経由で接続しているユーザーのための修正について説明していますが、私の場合はFTPとSFTPを介した接続も必要でした。その他のガイドでは、特定のグループ内のすべてのユーザーに1つの共有フォルダへのアクセス権を付与する方法について説明します。私の場合はそうではありません。分離各ユーザーごとのフォルダーです。

編集する:

あなたの相互作用と有用な情報に感謝し、混乱させて申し訳ありません。まず仕様を明確にします。

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

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

    それぞれはサブフォルダとuser_iデータを書き込んで読み込みます。彼は一般的なLinuxディレクトリ、特に他のユーザーディレクトリ(他の9つのディレクトリ)を含む他のディレクトリにアクセスできません。received_dataarchive_datauser_i

    サーバーに接続すると、デフォルトでフォルダにアクセスする必要があるため、user_i2つのサブフォルダしか表示できません。received_dataarchive_data

  2. 誰もがuser_i自分のために作られたグループに属します。

答え1

あなたが最も探しているChrootDirectoryオプションですsshd_config

各ユーザー user_i に user_i というフォルダがあります。 user_iには、そのディレクトリとその中のすべてのファイル/ディレクトリに対する読み取りおよび書き込み権限が必要です。

それは不可能ですchrootchrootこれはセキュリティの脆弱性(CVE-2009-2904)なので、ユーザーは自分が属するディレクトリへの書き込みアクセス権を持つことはできません。各ユーザーは独自の書き込み可能なディレクトリを持っている必要があります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/

関連情報