更改vsftpd默认的/var/ftp/pub目录

本文详细介绍了如何配置VSFTPD服务以更改默认访问目录,并实现匿名用户的文件上传功能。此外,还提供了设置权限、启用目录创建及其它写操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


看到论坛中有类似的帖子,自己也算是学习,搞了测试。希望对使用到的朋友有所帮助
环境:rhel4-5或者Centos4至5的系统
首先确保vsftpd已经默认安装service vsftpd start可以正常且ftp://ip可以看到pub目录

现在要实现更改默认访问的目录为其他目录例如/home/ftp我直接在/home目录下mkdir ftp
注意改完配置后都service vsftpd restart
测试步骤如下

vi /etc/vsftpd/vsftpd.conf
直接在配置文件中添加如下:
anon_root=/home/ftp
anon_upload_enable=NO

服务重启

通过ftp://ip访问到/home/ftp这个目录(证明已经将默认目录更改)。但是不运行上传文件,即使我将

anon_upload_enable=设置为YES那么同样的ftp://ip仍然无法访问上传文件

搜资料搞定

办法是在/home/ftp下建立一个新目录,使得该目录对ftp匿名用户可写。才能上传
所以我在/home/ftp目录下,建立了一个newftp目录。默认权限是:755
drwxr-xr-x 2 root root   4096 06-20 16:55 newftp
我测试还是无法上传,按照提示 使得该目录对ftp匿名用户可写,由于匿名用户(ftp)上传文件,需要对

newftp目录进行操作,而newftp为root所有,匿名用户(ftp)对于newftp来说是其他用户,所以要加入

其他用户(o)的写权限。
[root@centos5h ftp]# chmod o+w /home/ftp/newftp
现在权限变为:
drwxr-xrwx 2 root root   4096 06-20 16:55 newftp
其实就是757的权限,顺便说明下:
读出 r 4
写入 w 2
执行 X 1

现在当访问ftp://ip/newftp目录时就可以给该目录上传文件了

说明:当新建这个newftp的目录后,除了要注意文件权限之外,还必须打开配置文件中

anon_upload_enable=YES支持,才可以保证正常上传文件到这个目录

还有些补充参数可以根据个人需求来添加:


设置是否运允许匿名建立目录:
# Permission for anonymus users to make new directories? YES/NO
anon_mkdir_write_enable=NO

设置是否允许匿名用户进行删除或者改名等操作:
# Permission for anonymus users to do other write operations - like renaming or deleting?

YES/NO
anon_other_write_enable=NO


第二种办法就是如果不是匿名用户访问的话
如果 直接改为WWW/HTML目录里
可以useradd username -d www/html
然后给个passwd直接通过
ftp://useradd:passwd@ip就可以了注意目录权限就可以了


还有就是映射办法
比如ftp的默认目录是/var/ftp 想把/mnt/WinSoft文件夹,映射到/var/ftp目录中
先在/var/ftp目录中建一个目录
#mkdir /var/ftp/WinSoft
然后执行mount命令
#mount --bind /mnt/WinSoft /var/ftp/WinSoft
这样就OK了

听说也可以通过ln来处理,我想道理是一样的,可以测试的看看

#安装必要组件 yum install -y vsftpd db4-utils #备份原始配置 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak #第一部分:基础配置 cat /etc/vsftpd/vsftpd.conf << EOF listen=YES listen_ipv6=NO anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES tcp_wrappers=yes pam_service_name=vsftpd #匿名用户配置 anon_root=/var/ftp/pub no_anon_password=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 #被动模式配置 pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 pasv_address=$(hostname -I | awk '{print $1}') #虚拟用户配置 user_config_dir=/etc/vsftpd/virtual_users guest_enable=YES guest_username=ftp_virtual virtual_use_local_privs=NO pam_service_name=vsftpd_virtual EOF #第二部分:匿名用户配置 mkdir -p /var/ftp/pub/upload chown ftp:ftp /var/ftp/pub/upload chmod 755 /var/ftp/pub chmod 777 /var/ftp/pub/upload no_anon_password=YES #第三部分:本地用户配置 useradd -m ftp_local echo "ftp_local:local123" | chpasswd #从黑名单移除用户 sed -i '/ftp_local/d' /etc/vsftpd/{user_list,ftpusers} #第四部分:虚拟用户配置 #创建虚拟用户映射账户 useradd -d /var/ftp/virtual -s /sbin/nologin ftp_virtual mkdir -p /var/ftp/virtual/{user1,user2} chown -R ftp_virtual:ftp_virtual /var/ftp/virtual #创建虚拟用户凭证文件 cat > /etc/vsftpd/virtual_users.txt << EOF virtual1 virtual123 virtual2 virtual456 EOF #生成数据库文件 db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db chmod 600 /etc/vsftpd/virtual_users.* #创建 PAM 配置文件 cat > /etc/pam.d/vsftpd_virtual << EOF auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users EOF #创建虚拟用户独立配置 mkdir -p /etc/vsftpd/virtual_users #用户1配置(可写) cat > /etc/vsftpd/virtual_users/virtual1 << EOF local_root=/var/ftp/virtual/user1 anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
最新发布
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值