私はRedHat Gnu / Linuxを使用しており、10人のユーザーで構成されたグループがあり、すべてのユーザーにアクセスを制限したいと思います。私がそれらを尊重したいルールは次のとおりです。
- 各ユーザーには
user_i
というフォルダがありますuser_i
。user_i
そのディレクトリとその中にあるすべてのファイル/ディレクトリに対する書き込みおよび読み取り権限が必要です。 user_i
コンピュータに接続するときは、user_i
メインディレクトリに自分自身を見つける必要があります。- 彼(ユーザー
user_i
)は他のディレクトリやファイルを見ることができず、それにアクセスする権限もありません。このuser_i
ディレクトリは彼の「ルート」ディレクトリです。
グループを作成し、すべてのユーザーを作成してグループに割り当て、すべてのフォルダを作成しました。しかし、どのように進むべきかわかりません。
オンラインとこのウェブサイトで確認しました。ほとんどの結果は/etc/ssh/sshd_config
SSH経由で接続しているユーザーのための修正について説明していますが、私の場合はFTPとSFTPを介した接続も必要でした。その他のガイドでは、特定のグループ内のすべてのユーザーに1つの共有フォルダへのアクセス権を付与する方法について説明します。私の場合はそうではありません。分離各ユーザーごとのフォルダーです。
編集する:
あなたの相互作用と有用な情報に感謝し、混乱させて申し訳ありません。まず仕様を明確にします。
これらの
user_i
フォルダは、/transfersディレクトリに各ユーザー用に特別に作成され、ユーザー名で名前が付けられた新しいフォルダです。したがって、階層は次のようになります。/ --transfers/ ----user_i/ ------received_data/ ------archive_data/
それぞれはサブフォルダと
user_i
データを書き込んで読み込みます。彼は一般的なLinuxディレクトリ、特に他のユーザーディレクトリ(他の9つのディレクトリ)を含む他のディレクトリにアクセスできません。received_data
archive_data
user_i
サーバーに接続すると、デフォルトでフォルダにアクセスする必要があるため、
user_i
2つのサブフォルダしか表示できません。received_data
archive_data
誰もが
user_i
自分のために作られたグループに属します。
答え1
あなたが最も探しているChrootDirectory
オプションですsshd_config
。
各ユーザー user_i に user_i というフォルダがあります。 user_iには、そのディレクトリとその中のすべてのファイル/ディレクトリに対する読み取りおよび書き込み権限が必要です。
それは不可能ですchroot
。chroot
これはセキュリティの脆弱性(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/