linux ftp服务器不允许上传

linux ftp服务器不允许上传,第1张

linux有很多发行版本,在这里我用rhel给你说明一下.而ftp服务也有很多种的,在这里用一下系统自带的lftp.

首先,装服务包

然后在ftp目录下建立一个供匿名用户下载的目录

mkdir

/var/ftp/incoming

因为lftp默认的情况下就是允许匿名用户上传的,所以这里不用修改即可.

如果要改的话,可以修改vi

/etc/vsftpd/vsftpd.comf文件里的参数

启动服务并保证重启以后系统自动运行ftp

最后要说明的是,超级用户和文件的拥有者是可以删除文件的,其余的人不能.

默认是允许anonymous的。

默认是没有写的权限了,不然你新建个账户:

adduser

user1

password

user1

然后把/etc/init.d/vsftpd

restart

然后用user1登录就有些的权限了,这也是默认的,为了配置简单,我就直接让你新建系统用户了。有问题欢迎继续提出来。

centos 6.5 vsftpd 虚拟用户配置

一:基本知识

1:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器

2:vsftp的服务进程是vsftpd

3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .

4:vsftpd的用户文件是/etc/vsftpd/ftpusers

5:vsftpd的用户文件是/etc/vsftpd/user_list

6:推荐使用虚拟用户登入vs-FTP服务器

二:安装

1.检查是否安装过vsftpd

rpm -qa vsftpd

安装:

(1) yum -y install vsftpd lftp

(2) 关闭iptables 和 selinux

/etc/init.d/iptables stop

临时关闭selinux

setenforce 0

永久性的关闭selinux

vim /etc/selinux/config

修改为 ————》SELINUX=disabled

(3) 创建虚拟用户文本文件,添加用户及密码

cd /etc/vsftpd

touch vuser.txt

备注:奇数行是用户名,偶数行是密码。例如:

alix

123456

(4) 生成虚拟数据库文件(需使用到db_load)

yum -y install db4-utils db4-devel db4-4.3

db-load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

(5) 配置PAM文件,用来验证客户端

vim /etc/pam.d/vsftpd

authrequiredpam_userdb.sodb=/etc/vsftpd/vuser

accountrequiredpam_userdb.sodb=/etc/vsftpd/vuser

(6)修改虚拟数据库文件的权限

chmod700 /etc/vsftpd/vuser.db

(7) 增加一个系统用户vuser,用于匿名用户的映射。

mkdir /data

useradd -d /data vuser

chown vuser.vuser /data

usermod -s /sbin/nologinvuser

(8) 修改主配置文件vsftpd.conf,添加:

guest_enable=YES##激活虚拟用户

guest_uaername=vuser##把虚拟用户绑定为系统账户vuser

pam_service_name=vuser##使用pam认证

(9) 添加虚拟用户的配置文件

vim /etc/vsftpd/vsftpd.conf

添加:user_config_dir=/etc/vsftpd/vsftpd_user_conf

(10) 创建vsftpd_user_conf目录

mkdir /etc/vsftpd/vsftpd_user_conf

(11) 设置虚拟用户配置文件,与虚拟用户名相同

touch /etc/vsftpd/vsftpd_user_conf/testuser

(12) 编辑虚拟用户配置文件

vim /etc/vsftpd/vsftpd_user_conf/testuser

anon_world_readable_only=NO ###浏览FTP目录和下载

anon_upload_enable=YES ###允许上传

anon_mkdir_write_enable=YES###建立和删除目录

anon_other_write_enable=YES####改名和删除文件

local_root=/ftpdir/ #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。

备注:一定要检查后面是否有空格。

(13)启动

/etc/init.d/vsftpd restart

三。添加新的虚拟用户

添加虚拟用户

vim /etc/vsftpd/vuser.txt

web2

123456

生成库文件

db-load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

编辑虚拟用户的配置文件

touch /etc/vsftpd/vsftpd_user_conf/web2

vim /etc/vsftpd/vsftpd_user_conf/web2

anon_world_readable_only=NO ###浏览FTP目录和下载

anon_upload_enable=YES ###允许上传

anon_mkdir_write_enable=YES###建立和删除目录

anon_other_write_enable=YES####改名和删除文件

local_root=/ftpdir/ #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。

创建用户家目录

mkdir /ftpdir/web2

修改权限

chown -R vuser.vuser /ftpdir/web2

加载vsftpd

/etc/init.d/vsftpd reload

本地连接:

ftp

(需要把vsftpd.conf 里的ssl关了)

lftp

(在 /etc/lftp.cong里添加 set ssl:verify-certificate no)

四、配置ssl

1、安装包

apt-get -y install openssl

2、创建一个证书(时间365天)并填写相关一些信息

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/ssl/certs/vsftpd.pem -keyout /etc/ssl/certs/vsftpd.pem

Generating a 2048 bit RSA private key

..........+++

.............+++

writing new private key to '/etc/ssl/certs/vsftpd.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:shanghai

Locality Name (eg, city) []:shanghai

Organization Name (eg, company) [Internet Widgits Pty Ltd]:aaa

Organizational Unit Name (eg, section) []:aaa

Common Name (e.g. server FQDN or YOUR name) []:aaa

Email Address []:

3、修改权限

chmod 0400 /etc/ssl/certs/vsftpd.pem

4、ssl具体配置/etc/vsftpd.conf最后添加

ssl_enable=YES

rsa_cert_file=/etc/ssl/certs/vsftpd.pem

ssl_sslv2=YES

ssl_sslv3=YES

ssl_tlsv1=YES

5、配置说明

ssl_enable=YES#开启vsftpd对ssl协议的支持

ssl_sslv2=YES #支持SSL v2 protocol

ssl_sslv3=YES #支持SSL v3 protocol

ssl_tlsv1=YES #支持TSL v1

rsa_cert_file=/etc/ssl/certs/vsftpd.pem #存放证书地方

6、重启服务

/etc/init.d/vsftpd restart

Stopping FTP server: vsftpd.

Starting FTP server: vsftpd.

7、测试

1)lftp fileftp:'redhat'@192.168.1.124

ls: Fatal error: Certificate verification: Not trusted

解决在/etc/lftp.conf文件中添加1行到最后

set ssl:verify-certificate no

再登录一次就OK了

2)查看日志

Sat Aug 1 13:52:23 2015 [pid 2] CONNECT: Client "192.168.1.124"

Sat Aug 1 13:52:23 2015 [pid 2] DEBUG: Client "192.168.1.124", "Connection terminated without SSL shutdown - buggy client?"

Sat Aug 1 13:56:25 2015 [pid 2] CONNECT: Client "192.168.1.120"

Sat Aug 1 13:56:25 2015 [pid 1] [fileftp] OK LOGIN: Client "192.168.1.120"

修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf,添加下面三行:

1、local_root=/media/ftp/pub

2、chroot_local_user=YES

3、anon_root=/var/www/html/

local_root 表示本地用户登录后的根目录,也就是非匿名,而是输入用户名和密码登录进入的,这里顺便说一下ftp登录的格式  ftp://username:passwd@localhost

anon_root anonymous用户,即匿名用户访问的主目录

但是这时候可能会出现以下报错:

[root@localhost pub]# lftp localhost

lftp localhost:~> ls

ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable anonymous root

原因还是权限设置问题:

是ftp默认主目录权限设置不对,我这里报这个错误是因为/media/ftp设置权限为777,/media/ftp/pub设置权限也为777。

正确的权限设置是将/media/ftp权限设置为755,chmod 755 /media/ftp后重启ftp服务就可以了。

上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效,另外,如luo_rc所述,最好不要设置默认目录为/,使用mount --bind来挂载需要的目录

扩展资料:

如果你是默认的ftp目录出现此问题,那一定是这个/home/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是运行了chmod 777 /home/ftp所致;如果没有ftp用户这个家目录,要自己建一个;

如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;

[root@localhost ~]# ls -ld /home/ftp

drwxrwxrwx 3 root root 4096 2005-03-23 /home/ftp

修正这个错误,应该用下面的办法;

[root@localhost ~]# chown root:root /home/ftp

[root@localhost ~]# chmod 755 /home/ftp


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11260496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存