sftpユーザーに/ var / wwwディレクトリへのアクセスを許可する


12

ユーザーを作成し、ホームディレクトリを作成しました /var/www/mysite/ftpdir

また、このユーザーのMatchユーザーエントリsshd_configを、次を指すChrootDirectoryとともに追加しました。/var/www/mysite

これsshを拾うために再起動しました。

sftpでログインすると-ユーザーはまだユーザーの古いディレクトリに移動します /home/user

私は何が欠けていますか?


/home/userターゲットへのシンボリックリンクはどうですか?
イッシュ

回答:


17

これがプロセスです:

  1. :グループにユーザーを追加しますsudo usermod -aG www blubのように編集するにいただきました最も簡単な方法をして、「は/ var / WWW」にファイルを追加しますか?

    または単に使用する sudo adduser <username> www-data

  2. vsftpdをインストールする sudo apt-get install vsftpd
  3. リモートアクセス用にvsftpdを構成します。sudo nano /etc/vsftpd.confファイルセット内

    chroot_local_user=YES
    

    これがコメントアウトされていることを確認してください:

    #chroot_list_enable=YES
    

    ドキュメンテーションに従って。

  4. nsftpを再起動します。 sudo service vsftpd restart
  5. ユーザーのホームディレクトリをWebディレクトリに構成します(ではありません/home)。

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. 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
    
  7. sshを再起動します

    sudo service ssh restart
    
  8. Apacheの権限を変更します。

    chown root:root /var/www
    chown root:root /var/www/site
    chmod 755 /var/www
    

    こちらドキュメントのように

  9. ディレクトリにwww-dataアクセスがあることを確認してください

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    

2
私はこれらの指示に従いましたが、これらの行を追加すると接続が拒否されましたSubsystem sftp internal-sftp Match user <username> ChrootDirectory / var / www / site ForceCommand internal-sftp AllowTcpForwarding no
Ata

1
また、私はUbuntuの14.04と同じ問題を抱えている
torayeff

私も同じ問題を抱えています!
マキシズム

4
ステップ9で、chown root:root /var/www/siteそれsudo chown -R www-data:www-data /var/www/siteをステップ10 に戻すだけでよいのはなぜですか?
ジョニーQ

これは私のために働いていません
リンガ

2

接続拒否エラーが最後に発生する場合は、「UsePAM yes」の後にSubsystem sftp internal-sftp」が配置されていることを確認してください。そうでない場合は、sshを更新して再起動すると動作しました。


0

私は簡単な方法を使っており、それはApacheのために私のために働いた。

sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart

許可の問題の使用にまだ直面している場合chmod、およびchown必要に応じてそれらに対処する場合は、これで終わりです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.