SFTPが親ディレクトリではなくサブディレクトリにのみアクセスできるようにする方法

SFTPが親ディレクトリではなくサブディレクトリにのみアクセスできるようにする方法

tomユーザーにディレクトリへのSFTPアクセスを許可したいと思います/var/www/html/my_project/。ディレクトリへのSFTPアクセスを許可したくありません/var/www/html/

現在Apacheユーザーが所有しています/var/www/html/my_project/。ユーザーにtomディレクトリとapacheディレクトリへのアクセス権を/var/www/html/付与するだけです。/var/www/html/my_project/

アクセスが許可されると、tomは/var/www/html/my_project/の下のすべてのディレクトリにアクセスできます。

私を助けてください。私はこの問題で長い間苦労しています。

ベストアンサー1

/etc/ssh/sshd_config私のファイルでは、次のようなものを使用します。

Match User tom
ChrootDirectory /var/www/html/my_project/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

次に、Tomがディレクトリにアクセスできることを確認してください。tomターゲットディレクトリの上のすべてのディレクトリに対して少なくとも「x」(実行)権限が必要なため、これは難しい場合があります。ほとんどのLinux / Unixバージョンでは、/var/www/html/は通常誰でもアクセスできます。

私はおそらくmy_projectディレクトリを所有し、tomTomをApacheグループに含めます。 Apacheがapache:apache(ユーザー:グループ)として実行されている場合は、次のものを適用する必要があります。

~からhttp://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

# usermod -a -G apache tom

my_projectユーザーtomとグループがディレクトリ全体を所有するようにしますapache

# chown -R tom:apache /var/www/html/my_project/

ディレクトリ全体my_projectをグループが完全に書き込み可能tomで、グループが読み取り/実行できるようにしますapache

# chmod -R 750 /var/www/html/my_project/

注:生成されたすべてのファイルは、tomTomのユーザーとその基本グループの所有者になります。上記の例はtomグループに追加されますが、デフォルトグループにはapacheなりません。apacheこれは、Apacheサーバーが新しいファイルにアクセスできないことを意味します。この問題を解決するには、apachebetomのデフォルトグループをに設定しますuseradd -g apache tom

おすすめ記事