vsftpd的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vsftpd的问题相关的知识,希望对你有一定的参考价值。

CentOS
安装后,配置anonymous_enable=NO
系统内置用户(比如root等)禁止访问。
然后新建用户(test),测试可以连上。

问题如下:
1、目录不可写。我的vsftpd.conf已经写了write_enable=YES,/var/ftp目录也已经chmod 777过了
登录后,可以ls到pub目录。但是put的时候就提示vsftpd 550 Permission denied

2、在chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list,并把test加到chroot_list里后,再登录提示
“500 OOPS: cannot change directory:/var/ftp
500 OOPS: child died
远程主机关闭连接。”

3、在未配置chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list之前。
如果打开防火墙。。就连不上,ftp x.x.x.x 毫无反应,我开的是被动链接,防火墙加上
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 65000:65100 -j ACCEPT

已解决:
一句setsebool -P ftp_home_dir 1就搞定了 ^_^
SELinux真是害人不浅
感谢snxk5757 的大力帮助。。虽然也没找到原因。。。。

参考技术A 以下在你修改了目录权限后做。root被系统默认保护不能用作ftp用户,同时为了安全也建议你自建ftp用户。被系统默认ban掉的请看这里 /etc/vsftpd/ftpusers

1
首先vsftpd用service启动,如果手动启动记得用root。

2
vi /etc/vsftpd/vsftpd.conf;
修改如下内容:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
local_enable=YES

vi /etc/vsftpd/chroot_list;
添加你要的用户名例如:
test

这时你
useradd test -d /var/ftp。
passwd test
设置密码后重启vsftpd就可以用了

3
防火墙我一般都直接关掉了,还真没有在字符界面下配置过。
图形界面下就直接给21端口(如果你改了ftp端口这里也跟着改)设置一个例外就好。
参考技术B 用户没有权限 ,不在同一个组里面,要把test 这个用户属性和组都改一下追问

这个目录已经777了,哪个组还能没有权限呢?改成哪个组呢?

参考技术C anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
添加以上3行代码,
1.允许匿名上传文件也就是写文件
2.允许匿名用户创建文件夹
3.允许匿名用户的其他权限追问

为啥要允许匿名上传啊。。我就是要指定用户使用的

追答

那你把test加入到vsftp组里,就可以了

本回答被提问者采纳

vsftpd的配置与使用

参考网站:

https://zhidao.baidu.com/question/175795731.html (问题553)

http://yuanbin.blog.51cto.com/363003/108262/ (配置文件)

vsftpd的配置与使用

  1. ftp服务端配置
  2. 安装
    1. sudo yum install vsftpd
  3. vsftpd配置文件
    1. sudo vi /etc/vsftpd/vsftpd.conf

write_enable=YES

anonymous_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

  1. 文件夹权限
    1. $sudo mkdir /var/ftp/upload
    2. $sudo chmod -R 777 /var/ftp/upload

出现问题553 could not create file,不要修改文件的所有者和分组

  1. #sudo chown haoyou upload
  2. #sudo chgro root upload
  1. 全局系统配置

1.设置selinux

  1. vi /etc/sysconfig/selinux

将其中的SELINUX=enforcing改为SELINUX=disabled

2. 查看ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on

  1. getsebool -a|grep ftp

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> off

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> off

ftpd_connect_db --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

3. 如果不是则使用

  1. setsebool allow_sftpd_full_access on
  2. #setsebool ftpd_disable_trans on
  3. setsebool ftp_home_dir on

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> on

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> off

ftpd_connect_db --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

  1. 问题:匿名用户ftp和anonymous上传下载问题

anonymous用户上传的文件,ftp用户不能下载

文件上传掩码的问题。

默认为anon_umask=077,上传后文件权限为-rwx------,同组其他用户没有权限。

-rwxrwxrwx 1 14 50 7931279360 Dec 19 08:53 R2016a_glnxa64.iso

drwx------ 2 14 50 4096 Dec 19 10:11 crack

-rwxrwxrwx 1 14 50 66910156 Dec 19 03:06 cudnn-7.0-linux-x64-v3.0.8-prod.solitairetheme8

-rw------- 1 14 50 36 Dec 19 09:52 testftp.txt

-rwxrwxrwx 1 14 50 36 Dec 19 09:48 testftp2.txt

-rw------- 1 14 50 36 Dec 19 09:53 testftp3.txt

修改配置文件中anon_umask=000,则上传文件后权限为-rwxrwxrwx,同组ftp用户也有权限。

  1. Sudo vi /etc/vsftpd/vsftpd.conf
  2. anon_umask=000
  1. ftp客户端使用
  2. 连接
    1. OR ftp>open 10.67.0.81
    2. User (10.67.0.81:(none)): ftp
    3. Password:
  3. 目录查看
    1. ls
    2. dir
    3. !ls
    4. !dir
    5. cd mkdir rename …
    6. lcd
  4. 上传下载
    1. put ***
    2. mput *.txt
    3. get ***
    4. mget *.txt

以上是关于vsftpd的问题的主要内容,如果未能解决你的问题,请参考以下文章

求助vsftpd中如何创建用户

vsftpd 操作手册 - 完整版

vsftpd无法登录,请问应该如何配置?

CentOS安装vsftpd

Debian怎样安装并配置vsftpd服务器

Vsftpd服务的搭建