/ Documentsディレクトリを持つRHEL 6サーバーがあり、/ Documentsディレクトリのすぐ下に子ディレクトリ1 2 3 4 5 ....があります。ユーザーに1、2、7、9へのアクセスのみを許可し、他のフォルダーへのアクセスを許可しないSFTP chroot jailを作成することは可能ですか?
RHEL 6でNFSv3を使用しているため、ACLの選択が多少制限されています。
単純な解決策は、これらすべてのユーザーを同じchroot刑務所に入れ、すべてのディレクトリに機密情報以外の名前と権限を割り当てて、ユーザーが刑務所に入れたディレクトリにのみアクセスできるようにすることです。トップレベルディレクトリの権限を適用するだけで十分です。ユーザーは、x
権限のないディレクトリの下にはアクセスできません。
これでは不十分な場合、または適切なグループやACLを設定できない場合は、バインドマウントを設定して、ユーザーの許可されたすべてのディレクトリを共通のディレクトリの下に表示できます。
mkdir /Jails/bob /Jails/bob/{1,2,7,9}
mount --bind /Documents/1 /Jails/bob/1
mount --bind /Documents/2 /Jails/bob/2
…
いいえ、私はあなたがこれを行うことができるとは思いません。あなたはそれを手に取ることができますが、それはメンテナンスの悪夢の少しです。ファイル/etc/ssh/sshd_config
ユーザーのグループやユーザーの名前など、一致するセクションを追加できます。
AllowGroups sftponly sftpadmin root
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
ただし、これによりユーザーのエントリポイントであるChrootDirectory
のみを制御できます。したがって、それらを適切なchroot
にドロップする必要があります。
これらのディレクトリの自動マウントを使用して、いくつかの追加のゲームをプレイすることもできます。
* / -fstype=cifs,ro,noperm,netbiosname=${Host},file_mode=0444,dir_mode=0555,credentials=/etc/sftpuser_credentials.txt ://server/sftpdata/& \
/upload -fstype=cifs,rw,noperm,netbiosname=${Host},file_mode=0666,dir_mode=0777,credentials=/etc/sftpuser_credentials.txt ://server/sftpdata/&/upload
そのため、マウントを追加して、アクセスを取得するマウントへの読み取りアクセスと、アクセスを取得しないマウントへの非読み取りアクセスを許可することができます。
注:上記は、すべてに対する読み取りアクセス権をユーザーに付与しますが、/upload
それらのchrootされたディレクトリ内のサブディレクトリ。
私はおそらくあなたが望むものを達成する別の方法を考えます、これは醜く速くなる可能性があり、維持するのは面倒です。