我正在运行Ubuntu 10.04 i386。 我使用Cyberduck(FTP GUI客户端)连接到我的服务器mysub.domainname.com(在这里改变)。
这是我想要做的:
1)将apache2 root从/var/www
更改为/home/myuser/webroot
以提供像index.html这样的文件
2)允许FTP写入/home/myuser/webroot
3)允许myuser
用他的用户/通过组合与FTPlogin和读/写myuser
文件夹中的任何地方
Apache2根文件夹工作正常。 去myserver.com/index.html工作。 但是我无法写FTP,即使我在etc/vsftpd.conf
更改了这些行:
listen=YES #listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES #local_umask=022 #anon_upload_enable=YES #anon_mkdir_write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES #chown_uploads=YES #chown_username=whoever #xferlog_file=/var/log/vsftpd.log #xferlog_std_format=YES #idle_session_timeout=600 #data_connection_timeout=120 #nopriv_user=ftpsecure #async_abor_enable=YES #ascii_upload_enable=YES #ascii_download_enable=YES #ftpd_banner=Welcome to blah FTP service. #deny_email_enable=YES #banned_email_file=/etc/vsftpd.banned_emails # chroot_list_enable below. #chroot_local_user=YES #chroot_local_user=YES #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd.chroot_list #ls_recurse_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem
问题
每当我尝试在/home/myuser
或/home/myuser/webroot
创build一个文件夹时,我得到错误Create directory operation failed.
在我的FTP程序中,Cyberduck。
也许有用的信息:
drwxrwsr-x 2 myuser www-data 4096 2011-04-18 03:04 webroot
我也在这里改变了权限:
-rw-rwSr-- 1 myuser root 69 2011-04-18 02:14 index.html
…但没有运气。 我仍然无法使用FTP上传或写入。 任何build议或指针将是伟大的,我很相当失去这一个。
更新:
我尝试启用FTP匿名login,我甚至无法得到这个工作…我认为唯一的解决办法是完全清除系统的vsftpd和apache2,并刚刚开始
对于权限,您需要拥有myuser
拥有的文件夹和文件,以便可以从myuser帐户访问它们。
如果apache(或者你的脚本)需要写入这个文件夹,那么最好的办法就是使用chgrp
来指定应该写入www-data组的特定位置,然后chmod g+w
该位置或文件。 如果您正在对文件夹进行写入访问,则chmod g+sw
将为该文件夹提供写入权限,并确保在那里创build的文件也属于www-data组。
这种情况下的文件和目录看起来像这样:
drwxrwxr-x 2 myuser www-data 4096 2011-04-18 03:04 webroot -rw-rw-r-- 1 myuser www-data 1000 2011-04-18 03:04 index.html drwxrwsr-x 2 myuser www-data 4096 2011-04-18 03:04 folderwithg+ws
你应该非常小心的给予apache的文件和文件夹的写入权限,否则攻击者可能会想办法让你的脚本覆盖自己或者replaceindex.html,或者其他任何东西。
否则,如果apache不需要写入你的文档目录,那么权限应该没问题,因为所有子目录和文件都是世界可读的(并且目录是世界可访问的)。
对于SSL / TLS,您错过了
ssl_enable=YES
您可以强制用户使用encryption:
force_local_logins_ssl=YES force_local_data_ssl=YES
还有一个ssl_ciphers=
选项,如果你想把它限制为HIGH或者一个特定的密码列表。 如果你想要“隐式SSL”(而不是AUTH SSL
或AUTH TLS
命令来启动encryption,encryption是在连接开始时进行协商),那么implicit_ssl=YES