web-dev-qa-db-ja.com

VSFTPDおよびCentos6.2での書き込み許可

Httpdとvsftpdを備えたcentos6.2のサーバーがあります。

/ var/wwwにWebサイトがほとんどないので、サイトごとにftpユーザーを追加したいと思います。

私のuser1ホームディレクトリは/ home/user1であり、ftpからそのフォルダに読み取り/書き込みを行うことができます。 (それは私がsshとほとんどすべてに使用するユーザーです)

ホームが/ var/www/site2であるuser2とbash設定/ bin/nologinを作成しました(これは単なるftpユーザーにしたいため)

User2でFTPにログインしてファイルをダウンロードすることはできますが、ファイルまたはmkdirをアップロードできません...

許可は次のとおりです。

/ var/wwwの場合:

drwxrwxr-x. 13 root root 4096 Aug 21 14:08 .

/ var/www/site2の場合:

drwxrwxrwx. 2 user2 user2 4096 Aug 21 14:35 site2

(777はテスト用でした...)

私のvsftpd.confは:

 anonymous_enable=NO 
 local_enable=YES
 write_enable=YES 
 local_umask=022
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 xferlog_std_format=NO
 log_ftp_protocol=YES
 chroot_local_user=YES
 listen=YES
 pam_service_name=vsftpd
 userlist_enable=YES
 tcp_wrappers=YES
 banner_file=/etc/vsftpd/banner

私のiptablesは現在テストのために停止しているので、問題は私のファイアウォールでもありません...

SELinuxが有効になっている:

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

私がそれを無効にしたとき、それは働いています! :)どうすれば有効にしてvsftpdを動作させ続けることができますか?

よろしくお願いします

3
frank

/ var/www/site2の権利は何ですか?

User2は、ファイルシステムレベルでこのディレクトリへの書き込みアクセス権を必要とします。たとえば、/ var/www/site2は次のようにする必要があります。

ls /var/www
<snip>
drxwr-xr-x user2  www-data     site2/

SELinuxも無効になっていることを確認してください

 setsebool -P allow_ftpd_full_access 1
1
TheFiddlerWins

SELinuxが無効になっていることを確認することが、この状況に対する最善のアプローチではないと思います。

Vsftp(など)がSELinuxでフォルダーに書き込むことができるようにするには、public_content_rw_tのようなコンテキストが必要です。

したがって、コンテキストを設定してから、

chcon -t public_content_rw_t /var/www/site2
ls -ldZ /var/www/site2/

それでも失敗する場合は、/var/log/audit.logで手がかりを確認してください。それでも権限が拒否された問題があり、それらが/var/log/audit.logにログインしている場合、他に何が役立つかわからない場合は audit2allow の使用を検討してください。

0
Petter H