首页 > 代码库 > linux ftp

linux ftp

 

检查安装vsftpd软件
rpm -qa |grep vsftpd

 


或者
which vsftpd


查看ftp 服务器状态     
  
service vsftpd status

 



启动ftp服务器     
  
service vsftpd start

 



重启ftp服务器 
  
service vsftpd restart

查看服务有没有启动
  
netstat -an | grep 21

 

 
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN 
如果看到以上信息,证明ftp服务已经开启。

 

 

 

 

通过yum来安装vsftpd

 yum -y install vsftpd

 



设置为开机启动

 chkconfig vsftpd on

 




我们去掉配置文件vsftpd.conf 里面以下

anon_upload_enable=YES
anon_mkdir_write_enable=YES

 

两项前面的#号,就可以完成匿名用户的配置,此时匿名用户既可以登录上传、下载文件。记得修改配置文件后需要重启服务。





 忘记ftp密码修改方法:

登录服务器 

cd  /etc/vsftpd
vi vsftpd.conf 

 


找到对应的ftp用户名 (如果用户名也忘记了 那么 cd /etc 然后cat passwd 查看用户和对应的管理目录)
passwd ftp用户名(回车)

service vsftpd restart

 



 

建用户,命令行状态下,在root用户下:

运行命令:

useradd -d /home/test test

 

//增加用户test,并制定test用户的主目录为/home/test

运行命令:

passwd test

 

//为test设置密码,运行后输入两次相同密码

 

更改用户相应的权限设置:

运行命令:

usermod -s /sbin/nologin test

 

//限定用户test不能telnet,只能ftp

运行命令:

usermod -s /sbin/bash test

 

//用户test恢复正常

运行命令:

usermod -d /test test

 

//更改用户test的主目录为/test

 

限制用户只能访问/home/test,不能访问其他路径

修改/etc/vsftpd/vsftpd.conf如下:

chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

 



编辑上面的内容

第一行:chroot_list_enable=YES  //限制访问自身目录

第三行:编辑vsftpd.chroot_list。根据第三行说指定的目录,找到chroot_list文件。(因主机不同,文件名也许略

有不同)

编辑vsftpd.chroot_list,将受限制的用户添加进去,每个用户名一行

 

 

如果需要允许用户修改密码,但是又没有telnet登录系统的权限:

运行命令:

usermod -s /usr/bin/passwd test

 

//用户telnet后将直接进入改密界面

 

 

设置上传权限

  

chmod 777 -R /home

 

 

 

要添加模块和开放21端口才能提供ftp访问。 
1.添加ip_conntrack_ftp 模块

[root@localhost ~]# vi /etc/sysconfig/iptables-config

 

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

 

2.打开21端口

[root@localhost ~]# vi /etc/sysconfig/iptables

 

添加

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

 

3.重启iptables使新的规则生效

[root@localhost ~]# service iptables restart

 

到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查

[root@localhost ~]#getsebool -a |grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off

  

这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。
[root@localhost ~]#setsebool -P ftp_home_dir 1
[root@localhost ~]#setsebool -P allow_ftpd_full_access 1

  

 

 

linux ftp