Linux FTP配置匿名用户访问

Linux FTP配置匿名用户访问匿名用户首先要配置的就是配置文件中的 anonymous enable YES 这一项 默认情况下是允许匿名访问 在 Windows 系统用命令行去匿名访问 FTP 也还是要输入用户名和密码的 匿名用户提供了专门的两个匿名账号来供使用 anonymous 和 ftp 无需输入密码 登陆成功后 使用 ls 命令列表显示 get 下载 put 上传 在系统中也有与匿名用户 ftp 相对应的用户 这样对于匿名用户有什

  1. 匿名用户首先要配置的就是配置文件中的“anonymous_enable=YES”这一项,默认情况下是允许匿名访问,在Windows系统用命令行去匿名访问FTP,也还是要输入用户名和密码的,匿名用户提供了专门的两个匿名账号来供使用“anonymous和ftp”无需输入密码,登陆成功后,使用ls命令列表显示,get下载,put上传。
  2. 在系统中也有与匿名用户“ftp”相对应的用户,这样对于匿名用户有什么权限,就是设置ftp用户的权限,
  3. 如果客户端访问不成功,可能是由于服务端的防火墙和selinux没关导致的;匿名用户在访问FTP服务时只能访问FTP主目录/var/ftp,不能切换到别的目录访问;如果想访问别的目录,那就要用户对于目录有权限。
  4. 设置匿名用户上传,vsftpd服务默认是允许匿名用户访问并提供下载的功能,但考虑安全性,匿名用户无法上传,要想让匿名用户可以上传文件,就必须对vsftpd的配置文件和共享目录的系统权限进行设置,当然,在实际中,是不建议给匿名用户太多权限的:
  1. 在配置文件/etc/vsftpd/vsftpd.conf中,“#anon_upload_enable=YES(允许匿名用户上传,默认是不行的,被注释掉)”和“#anon_mkdir_write_enable=YES(允许匿名用户创建目录,默认是不行)”这两项与匿名用户上传的权限设置相关。
  2. 然后修改默认访问的目录的系统权限,FTP默认目录/var/ftp目录是不允许修改权限的,目录下还有个pub子目录,可以修改这个目录的权限来允许匿名用户上传。
  3. 修改完权限匿名用户能上传和创建目录后,但如果想删除里面的文件的话,还需要在配置文件中添加一个设置项“anon_other_write_enable=YES”表示允许匿名用户删除文件
  1. 配置本地用户访问FTP:
  1. 在Windows客户端,当匿名访问和本地访问同时开启,访问是默认使用匿名访问的,如果像切换用户,就右键点击登录输入用户名和密码。
  2. 要使用系统用户登录访问FTP,就要将配置文件中“local_enable=YES”开启,使用系统用户访问,默认是访问的用户的家目录,而不是/var/ftp目录,因为系统用户访问的是自己的家目录,所以默认是可以上传文件的。
  3. 如果希望系统用户在访问FTP时,访问的是FTP主目录/var/ftp,而不是家目录,可以在配置文件/etc/vsftpd/vsftpd.conf再新添加一行“local_root=/var/ftp”来指定访问的目录,也可以自己随意指定。
  4. 这样在修改了访问的主目录后,默认就是没有权限进行上传的,在配置文件中时允许上传,但在系统层面,还是不允许客户端对主目录进行上传,我们还是可以通过修改主目录下的子目录的权限或新建别的子目录的权限来让客户端进行上传。
  5. 禁锢用户于指定的目录,默认情况下,当系统用户去访问FT[服务时,虽然访问的是自己的家目录或指定的目录,但是都可以通过cd命令切换到服务端的其他用户具有访问权限的目录,这样就会存在安全隐患,所以就需要将系统用户禁锢在指定的目录中,禁止随意切换目录。
  6. 禁锢这个操作需要用到“chroot_local_user=YES”设置项,这个设置项位于vsftpd配置文件的101行,默认是被注释状态,启用该项并重启保存配置后,就可以将用户禁锢在自身家目录或指定的FTP主目录中,当客户端再次登录访问FTP后,就只能在他自己的家目录或指定的FTP主目录中访问。
  7. 要注意的是,在vsftpd.conf配置文件中启用了“chroot_local_user=YES”配置项后,当启用了禁锢的设置项,同时用户还对自己访问的主目录有写入权限,例如,如果系统用户对所访问的FTP主目录具有写入权限,则会拒绝用户登录,如果是访问的是家目录,默认拥有写入权限,禁锢在家目录中,就会导致拒绝登录

如果想要既能用户对主目录有写入权限,又能禁锢在主目录中,就需要在配置文件中再添加一个新的设置项“allow_writeable_chroot=YES”重新加载配置文件就可以是实现正常访问了。

如果我们只想来禁锢指定的用户,还可以永固配置chroot_list列表来禁锢部分指定的用户,在配置文件的102和104行有两个和chroot_list相关的设置项“chroot_list_enable=YES”表示启用chroot_list的功能;“chroot_list_file=/etc/vsftpd/chroot_list”表示指定列表文件,将这个两个配置项启用之后,只需要将需要禁锢的用户添加到列表文件中即可,同时在配置文件中我们还需要将“chroot_local_user”这项注释掉。

从安全上来看,一般建议启用将所有用户禁锢的设置项。

  1. 配置用户访问列表访问FTP服务:

默认设置情况下,FTP服务器中的所有系统用户都可以进行访问FTP服务,如果想只有指定的用户能访问,就可以设置访问用户列表,来限制是否能访问FTP服务

Vsftpd服务默认提供了两个访问用户列表的文件:/etc/vsftpd/ftpuser,/etc/vsftpd/user_list,两个文件中均包含有一份FTP用户的列表名单:

·/etc/vsftpd/ftpuser:这个文件是属于黑名单,里面包含的用户账号都将被禁止访问FTP服务,无论是否这个用户在另一个/etc/vsftpd/user_list文件中出现,一般是将“root”“bin”“daemon”等特殊用户放在这个文件中,禁止访问FTP。

·/etc/vsftpd/user_list:这个文件可以用作白名单,也可以用作黑名单,就是意味着这个文件里包含的用户既有可能被禁止登录,也有可能被允许登录,当然,我们一般是拿来做白名单,具体如何使用,需要修改配置文件/etc/vsftpd/vsftpd.conf中的“userlist_enable=YES”设置项,表示是否启用user_list这个文件,启用后,添加设置项“userlist_deny=YES”表示文件将作为黑名单使用;添加“userlist_deny=NO”表示将文件作为白名单使用,通常情况下都是作为白名单使用。

注意的是,当启用了用户列表后,即使将“anonymous_enable”设置项设为“YES”,也没法使用匿名用户访问FTP,匿名访问就被禁用了。

  1. 一般来说,使用本地系统用户登录访问FTP服务的话,相对应的shell是可以登陆系统的用户,这样的话就意味着有安全隐患,按理来说,应该是不能登陆系统的本地用户也可以访问FTP服务,/etc/shells这个文件中就包含了所支持的shell类型,所以将“/sbin/nologin”这个shell添加到这个文件中,就可以实现不能登陆系统的用户可以访问FTP服务。

能够访问FTP服务器的条件:·必须是存在于/etc/passwd文件中的用户;用户必须设置密码

  1. /etc/vsftpd/vsftpd.conf中的“local_umask”设置项,用文件(666)或系统最高权(777)限减去umask值表示在系统中当前用户创建目录或文件的默认权限,所以这个设置项代表系统用户来上传或创建文件或目录的权限是什么
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232629.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月26日 下午3:01
下一篇 2025年9月26日 下午3:22


相关推荐

  • Java常用代码_计算机植入木马程序

    Java常用代码_计算机植入木马程序1.字符串有整型的相互转换Stringa=String.valueOf(2);//integertonumericstringinti=Integer.parseInt(a);//numericstringtoanint2.向文件末尾添加内容BufferedWriterout=null;try{out=newBu…

    2025年6月12日
    18
  • C#与.NET的区别和C#程序结构

    C#与.NET的区别和C#程序结构C#语言及其特点(1)语法简洁,不允许直接操作做内存,去掉指针操作(2)彻底的面向对象设计,C#具有面向对象所应用的一切特性:封装、继承、多态(3)与Web紧密结合,C#支持绝大多数的Web标准

    2022年7月4日
    22
  • sprintf()函数的用法总结

    sprintf()函数的用法总结sprintf()函数的程序用例:#include#includeintmain(void){charbuffer[80];sprintf(buffer,”AnapproximationofPiis%f\n”,M_PI);puts(buffer);return0;}sprintf的作用是将一个格式化的字符串输出到一个

    2022年6月15日
    30
  • ioctl() FIONREAD 检测socket是否有数据可读

    ioctl() FIONREAD 检测socket是否有数据可读先看看FIONREAD的作用FIONREAD:Getthenumberofbytesintheinputbuffer获取接收缓存中数据的字节数项目中用来判断tcpsocket是否有数据接收到,但是出现了一个问题,对于用于accept的socket即调用listen()之后的socket,用FIONREAD,判断的时候报错,ioctl()返回-1,错误码是2…

    2022年7月23日
    8
  • Gateway网关简介及使用

    Gateway网关简介及使用Gateway网关简介及使用1.什么是API网关(APIGateway)分布式服务架构、微服务架构与API网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平台无关的服务协议作为各个单元间的通讯方式。AP…

    2022年10月11日
    5
  • Tomcat的context path

    Tomcat的context path本文章转载自 https www cnblogs com yanan7890 p 8329163 htmltomcatse xmlcontextpa 配置需要注意的事情在 tomcat 下放个 war 包 假如我是这样配置 server xml 的

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号