web-dev-qa-db-ja.com

特定のサブディレクトリへのアクセス権を持つsftp(sshd)の仮想ユーザーを設定する方法は?

Sshdやpamでsftpの仮想ユーザーをセットアップしようとしました。

私のフォルダ構造は次のようになります。

/
|-- var
|   +-- www
|       +-- site1
|           +-- folder_1
|           +-- folder_2
|       +-- site2
|           +-- folder_1
|           +-- folder_2

各サイトには、ホームディレクトリが同じグループ(site1、site2)であるLinuxユーザー(site1、site2など)がいます。 /var/www/site1。 umaskは0022で、すべてのファイルと(サブ)フォルダーはsite1 have UID=site1 anf GID=site1。これは変更しないでください。

Sftpのルートフォルダーは、たとえば、各Linuxユーザーが自分のホームディレクトリを取得するようにsshdをセットアップできました/var/www/site1ユーザーsite1/etc/ssh/sshd_configの設定は次のようになります
(最後の数行のみ、残りはデフォルト設定です):

UsePAM yes
Subsystem sftp internal-sftp
Match User *,!root
    ChrootDirectory %h
    ForceCommand internal-sftp -u 0022
    AllowTcpForwarding no

ここで、sftpルートフォルダーが存在する場所に仮想ユーザー(必要な場合は新しいLinuxユーザーまたはグループは不要)を追加します。 /var/www/site1/folder1(sftpユーザーの場合) site1_folder1。このユーザーは、ユーザーsite1の子であり、同じUIDとGIDを使用する必要がありますが、彼のサブディレクトリにのみアクセスできます。

構成を変更する方法と、仮想ユーザーをどこに追加できますか?

buntu 16.04 LTS、LAMPサーバーでこれが必要

2
Webdesigner

ProFTPdを使用すると、仮想FTP/SFTPユーザーを作成し、それらを実際のユーザーのuidおよびgidにマッピングできます。

1
user2005651

仮想ユーザーのようなものはありません。接続するユーザーにはユーザーアカウントが必要です。それぞれのホームディレクトリでそれらをchrootすることができます。

0
HellionWisp