我打算使用vsftpd作为一个安全的ftp服务器,但我很难控制将用作ftplogin的linux用户。
用户需要“入狱”到特定的目录(和子目录),并具有完全的读/写访问权限。
要求: – 用户帐户“admin_ftp”应该被监禁到/ var / www目录。 – 其他帐户将根据需要添加,为每个网站…例如: – 用户帐户“picturegallery_ftp”应该被监禁到/var/www/picturegallery.com目录。
我已经尝试了以下,但无济于事:
# Group to store all ftp accounts in. groupadd ftp_accounts # Group for single user, with the same name as the username. groupadd admin_ftp useradd -g admin_ftp -G ftp_accounts admin_ftp chgrp -R ftp_accounts /var/www chmod -R g+w /var/www
当我使用帐户admin_ftplogin到FTP时,我收到错误消息:
500 OOPS:无法更改目录:/ home / admin_ftp
但是我没有指定主目录?
额外的互联网的指导如何做到这一点专门为vsftpd 🙂
我的第一个回应很简单:
除非你绝对必须使用FTP,否则不要使用FTP。 这是不安全的,在这个时代没有理由使用它。
而是使用SSH和/或SCP和/或SFTP(所有类似和相关的协议)。
就如何做到这一点,其中有相当一部分。 我会链接到几个谷歌search结果(不担保任何这些):
还有更多,只是search… …
特别是对于vsftpd,呃? 好的:
在vsftpd.conf中,添加:
user_config_dir=/etc/vsftpd/user_conf
然后在/ etc / vsftpd / user_conf / admin_ftp中,把:
anon_root=/var/www local_root=/var/www
…为每个其他帐户等。
现在值得指出的是,在没有其他保障措施的情况下,监禁这样的人是毫无意义的。 毕竟,因为它是在一个DocRoot里面的,所以他们可以上传一个PHP文件,然后通过Web浏览器访问这个PHP文件,此时他们不再被监禁。 所以请记住仔细考虑整个安全环境。
至于FTP会话本身的安全性(ircmaxell的担忧),只需设置FTPS即可。 在vsftpd中这样做很简单,如果你使用FTPES,你可以用任何一种方式连接。
如何设置相应的本地家庭,然后使用chroot_local_user或chroot_list_enableconfiguration选项chroot?
当您创buildadmin_ftp用户时,您并未指定您希望此用户的主目录为/ home / admin_ftp以外的其他目录。 所以ftp服务器试图进入/ home / admin_ftp,因为这就是它在passwd文件中所看到的。 你应该把admin_ftp的主目录改为/ var / www /,如果你希望这个目录是你使用该用户的FTP进入的目录:
usermod -d /var/www admin_ftp
我不知道你使用的是什么发行版,但Arch Linux有一个很好的wiki页面来设置vsftp: 非常安全的FTP守护进程