vsftpd的ls命令无法查看目录、无法上传下载文件的解决方法

发布时间:2020-03-23编辑:脚本学堂
本文介绍下,在linux中,vsftpd搭建的ftp服务器,无法使用ls查看目录、无法上传与下载文件的解决方法。有遇到类似问题的朋友参考下。

linux下搭建的vsftpd服务器,ls无法查看目录,无法上传下载文件了!
错误消息:
 

ftp> ls

227 Entering Passive Mode (192,168,2,222,110,161)
150 Here comes the directory listing.
226 Directory send OK.

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.

查看ftp的命令:
 

复制代码 代码示例:
ftp> help
Commands may be abbreviated.  Commands are:
! cr  mdir   proxy  send
$ delete mget sendport site
accountdebug mkdirput     size
append dir mls    pwd  status
ascii  disconnect      modequit   struct
bell     form    modtime  quote    system
binarygetmput  recv   sunique
bye    glob     newer    reget  tenex
case hash   nmap rstatus   trace
ccc     help   nlist    rhelp  type
cd      idle     ntransrename   user
cdup  image    open  reset  umask
chmod    lcd     passive  restartverbose
clear  lsprivatermdir ?
closemacdef   prompt    runique
cprotect mdelete  protect   safe

通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题,参看man ftpd_selinux,找到了解决方法。

解决办法:
 

复制代码 代码示例:
1. setsebool -P ftpd_disable_trans 1
2. service vsftpd restart

还有一个办法就是禁用selinux,也管用。
vi /etc/sysconfig/selinux
SELINUX=enforcing --> SELINUX=disabled
修改后,需要重启机器才能生效。


附,常见的setsebool 命令
 

BOOLEANS
SELinux  policy is based on least privilege required and may also be customizable by setting a boolean with setsebool.
Allow ftp servers to read and write files with the public_content_rw_t file type.
setsebool -P allow_ftpd_anon_write on

Allow ftp servers to read or write files in the user home directories.
setsebool -P ftp_home_dir on

Allow ftp servers to read or write all files on the system.
setsebool -P allow_ftpd_full_access on

Allow ftp servers to use cifs for public file transfer services.
setsebool -P allow_ftpd_use_cifs on

Allow ftp servers to use nfs for public file transfer services.
setsebool -P allow_ftpd_use_nfs on

system-config-selinux is a GUI tool available to customize SELinux policy settings.