ユーザーを作成し、ホームディレクトリ/var/www/mysite/ftpdir
を作成しました
また、sshd_config
を指すChrootDirectoryを使用して、/var/www/mysite
にこのユーザーのMatchユーザーエントリを追加しました
これを拾うためにssh
を再起動しました。
Sftpでログインすると、ユーザーはまだユーザーの古いディレクトリ(/home/user
)に移動します
私は何が欠けていますか?
これがプロセスです:
ユーザーをグループに追加します:Sudo usermod -aG www blub
ファイルを編集して「/ var/www」に追加する最も簡単な方法は何ですか?
または単にSudo adduser <username> www-data
を使用します
Sudo apt-get install vsftpd
をインストールしますリモートアクセス用にvsftpdを構成する:Sudo nano /etc/vsftpd.conf
およびファイルセット内
chroot_local_user=YES
これがコメントアウトされていることを確認してください:
#chroot_list_enable=YES
ドキュメント に従って。
Sudo service vsftpd restart
ユーザーのホームディレクトリをWebディレクトリに構成します(/home
にはありません):
Sudo usermod -d /var/www/mysite/ftpaccessdir <username>
Ssh chrootを構成する
Sudo nano /etc/ssh/sshd_config
最後に次を追加します。
Subsystem sftp internal-sftp
Match user <username>
ChrootDirectory /var/www/site
ForceCommand internal-sftp
AllowTcpForwarding no
ファイルのさらに上に、これがコメントアウトされていることを確認します(つまり、追加したばかりのファイルの前)
#Subsystem sftp /usr/lib/openssh/sftp-server
Sshを再起動します
Sudo service ssh restart
Apacheの許可を変更します。
chown root:root /var/www
chown root:root /var/www/site
chmod 755 /var/www
docs here のように。
ディレクトリにwww-dataアクセスがあることを確認してください
Sudo chown -R www-data:www-data /var/www/site
chmod 755 /var/www/site
最後に接続拒否エラーが発生する場合は、"Subsystem sftp internal-sftp"が"UsePAM yes"の後に配置されていることを確認してください。そうでない場合は、sshを更新して再起動すると動作しました。
私は簡単な方法を使っており、それはApacheでうまくいきました。
Sudo useradd -d /var/www demo_user -g www-data
Sudo passwd demo_user
Sudo service ssh restart
それでもアクセス許可の問題に直面する場合は、chmod
およびchown
を使用して、ニーズに応じて対処してください。