RedHat Gnu/Linuxを使用しています。10人のユーザーのグループがあり、それらすべてへのアクセスを制限したいと思います。これらを尊重したいルールは次のとおりです。
user_i
ごとに、user_i
という名前のフォルダーがあります。 user_i
には、自分のディレクトリとその中のすべてのファイル/ディレクトリに対する書き込みおよび読み取りのアクセス許可が必要です。user_i
がマシンに接続すると、デフォルトでuser_i
ディレクトリにいるはずです。user_i
)は他のディレクトリやファイルを見ることができず、それらにアクセスできません。 user_i
ディレクトリは彼の「ルート」ディレクトリです。グループを作成し、すべてのユーザーを作成してこの1つのグループに割り当て、すべてのフォルダーを作成しました。しかし、私はこれを超えて続行する方法がわかりません。
私はオンラインとこのウェブサイトを見ました。見つかったほとんどの結果は、SSHで接続しているユーザーの/etc/ssh/sshd_config
の変更について話しているのに対し、私の場合はFTPとSFTP経由で接続する必要もあります。また、他のガイドでは、特定のグループのすべてのユーザーに1つの共有フォルダーへのアクセスを許可することについて説明していますが、すべてのユーザーにseparateフォルダーが必要なため、私の場合はそうではありません。
編集:
皆様のご交流と有益な情報に感謝いたします。混乱をお詫び申し上げます。ここで仕様を明確にします。
user_i
フォルダーは、すべてのユーザー専用に/ transfersディレクトリーに作成され、そのユーザー名にちなんで名付けられた新しいフォルダーです。したがって、階層は次のようになります。
/
--transfers/
----user_i/
------received_data/
------archive_data/
すべてのuser_i
は、サブフォルダーreceived_data
およびarchive_data
でデータの書き込みと読み取りを行います。彼は、一般的なLinuxディレクトリ、特に他のユーザーのディレクトリ(他の9 user_i
)を含む、他のディレクトリにアクセスできません。
サーバーに接続すると、デフォルトでuser_i
フォルダーに移動するはずなので、2つのサブフォルダーreceived_data
とarchive_data
のみが表示されます。
すべてのuser_i
は、それらのために特別に作成されたグループに属しています。
おそらく、sshd_config
のChrootDirectory
オプションを探しています。
ユーザー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/