linux ftp 记录,linux FTP vsftpd

linuxFTP教程vsftpd

一、安装和启动

#查看是否已安装:rpm-q

vsftpd

vsftpd-3.0.2-11.el7_2.x86_64

vsftpd -v

vsftpd: version 3.0.2

安装 :yum -y install vsftpd

可以顺便把FTP客户端也装了:yum install ftp

检查:whereisvsftpd

vsftpd:/usr/sbin/vsftpd /etc/vsftpd

/usr/share/man/man8/vsftpd.8.gz

启动:systemctl start vsftpd

二、设置SELinux

linux系统会限制文件传输,或者访问等,使用ftp和samba都需要关闭该项

临时SELinux,重启电脑后失效

setenforce 0

#设置SELinux成为permissive模式

(关闭SELinux)

setenforce 1

#设置SELinux成为enforcing模式(开启SELinux)

永久SELinux,重启电脑后有效

vi /etc/selinux/config

SELINUX=disabled(如果有则修改,如果没有则添加)

其他方式

查询:getsebool -a | grepftp

设置:setsebool -Pftpd_full_access on

查询结果:加粗项根据需要打开

ftp_home_dir--> on

ftpd_anon_write--> on

ftpd_connect_all_unreserved -->

off

ftpd_connect_db --> off

ftpd_full_access--> on

ftpd_use_cifs --> off

ftpd_use_fusefs --> off

ftpd_use_nfs --> off

ftpd_use_passive_mode --> off

httpd_can_connect_ftp --> off

httpd_enable_ftp_server --> off

sftpd_anon_write --> off

sftpd_enable_homedirs --> off

sftpd_full_access --> off

sftpd_write_ssh_home --> off

tftp_anon_write --> off

tftp_home_dir--> on

三、设置firewall

设置:firewall-cmd --permanent --zone=public

--add-service=ftp

重启:firewall-cmd

–reload

查看:firewall-cmd --zone=public --list-all

四、测试

启动服务 : systemctl start vsftpd

本地访问和登录: ftp localhost

输入Name:anonymous或者ftp(我测试时随便的都可以)

输入密码:留空就行

登录成功后表示安装成功,可以使用ls查看测试项

该目录位于/var/ftp文件下有“pub”和“test”2项内容。

五、配置

在上述安装和测试完成后可以根据需要配置不同帐号和访问权限:

本地用户:用户在FTP服务器拥有账号,且该账号为本地用户的账号,可以通过自己的账号和口令进行授权登录,登录目录为自己的home目录$HOME(指创建帐号时分配的目录)

虚拟用户:用户在FTP服务器上拥有账号,但该账号只能用于文件传输服务。登录目录为某一特定的目录,通常可以上传和下载

匿名用户:用户在FTP服务器上没有账号,登录目录为/var/ftp(或者指定的匿名目录(可自行修改))

经过测试发现本地用户和虚拟用户不能同时使用,除非把本地帐号加入到虚拟账号列表里??为啥呢?

配置文件目录:/etc/vsftpd/

账户设置调用:/etc/pam.d/vsftpd

5.1 本地用户使用模式:

1.添加配置:

vim /etc/vsftpd/vsftpd.conf

查看并核对以下内容:

local_umask=022#基本项

dirmessage_enable=YES#基本项

xferlog_enable=YES#基本项

connect_from_port_20=YES#基本项

xferlog_std_format=YES#基本项

listen=NO#基本项

YES也可以,独立启动

listen_ipv6=YES#基本项

pam_service_name=vsftpd#基本项

userlist_enable=YES#基本项

tcp_wrappers=YES#基本项

guest_enable=YES#没有则添加

guest_username=ftpuser#没有则添加,之后会添加这个帐号到linux系统中,并且对该帐号设置的目录将会作为其他用户登录的主目录

local_root=/var/ftp/$USER

#任选项,如果想要不同用户登录后进入到不同的目录下,可以添加这个,也可以使用固定的目录,比如/var/ftp/upload而不是

ftpuser的帐号目录。

注意:我使用这个的时候没有成功,它无法识别$USER这个参数,尝试各种方法都不行,但是也可以使用local_root=。。。来指定目录

chroot_local_user=YES

allow_writeable_chroot=YES#如果添加了local_root请添加这两项,否则会提示chroot失败

anonymous_enable=NO#基本项,是否允许匿名登录,默认是YES,测试时可以登录,自行定义。还有很多关于匿名用户的配置,以下添加了2个,

anon_root=/var/ftp#任选项,匿名用户登录后的目录

ftp_username=ftp#任选项,根据是否开启匿名选择,定义匿名用户的账户名称,默认值为ftp,也可以修改使用。no_anon_password=YES        #任选项,匿名用户登录时是否询问口令。设置为YES,则不询问。默认NO

以下三项虽然是看着是设置匿名用户的,但是测试结果是,关闭匿名用户后也要开启这三项,根据需要设置后才能上传啥的。目前没有找到其他参数,

anon_upload_enable=YES#任选项,是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO

anon_mkdir_write_enable=YES#任选项,是否允许匿名用户创建目录。只有在write_enable设置为YES时有效。且匿名用户对上层目录有写入的权限。默认为NO

anon_other_write_enable=YES#任选项,若设置为YES,则匿名用户会被允许拥有多于上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

download_enable=YES#任选项,设置下载权限,看情况啦,不需要用户下载可以不添加,需要的话请设置为YES

2.添加用户

添加宿主用户: ftpuser指定

`/var/ftp/`目录

useradd -g root -M -d /var/ftp-s /sbin/nologin

ftpuser

-g

root表示添加ftpuser到root用户组

-M不创建用户主目录

-d定义主目录地址

-s

/sbin/nologin设置用户不能使用shell登录,比如通过putty登录到系统,或者本地登录到系统

没有测试不添加到root组的情况

设置用户ftpuser的密码:passwd

ftpuser

下面这个操作我感觉没啥用

/var/ftp的所有权给ftpuser.root

chown -R ftpuser.root

/var/ftp

添加普通用户:useradd -s /sbin/nologin test1

useradd-s /sbin/nologin test2

………………………

然后依次passwd test1修改密码等等等

3.测试登录

重启服务:systemctl restart vsftpd

运行:ftp localhost

用户名:test1

密码:刚才设置的,然后。。。登录成功啦啦啦,如果不成功建议查看“设置SELinux”

然后也可以远程访问下啦啦啦;ftp://ip

好啦,大功告成啦啦啦啦啦

5.2 虚拟用户使用模式:

1.添加配置:加粗项

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/vuser_conf

#设置虚拟用户的配置文件,可设置权限,目录地址等

virtual_use_local_privs=YES

chroot_local_user=YES

allow_writeable_chroot=YES

anon_upload_enable=YES

#这四项可去掉,在用户配置中设置

anon_mkdir_write_enable=YES

anon_mkdir_write_enable=YES

download_enable=YES

2.添加用户

编辑虚拟用户名单文件:touch

/etc/vsftpd/vuser_passwd

#第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

vi /etc/vsftpd/vuser_passwd

test2  #任意起名字

123456

ftpuser

#虽然添加了宿主用户,如果使用虚拟模式,不添加到此处依然无法登录,当然也可以使用很多其他用户)

123456

#保存退出

生成虚拟用户数据文件

db_load -T -t hash -f/etc/vsftpd/vuser_passwd

/etc/vsftpd/vuser_passwd.db

chmod 600 /etc/vsftpd/vuser_passwd.db

3.创建用户配置

mkdir /etc/vsftpd/vuser_conf

#建立虚拟用户个人vsftp的配置文件,

cd/etc/vsftpd/vuser_conf

#进入目录

touch test2  ftpuser

#这里创建两个虚拟用户配置文件,如果不创建,用户登录则会使用全局配置,直接进入到宿主用户的根目录。并且使用配置1中的配置权限。

每一个文件配置文件都差不多,请根据用户的具体权限设置。

local_root=/var/ftp/test2#任选项 用户配置目录,这个地方不一样

切记:要对这个文件夹地址配置可以访问的权限才可以登录成功

write_enable=YES#任选项

允许本地用户对FTP服务器文件具有写权限,可以设置本地用户的上传权限,默认是有的

anon_upload_enable=YES#任选项,是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO

anon_mkdir_write_enable=YES#任选项,是否允许匿名用户创建目录。只有在write_enable设置为YES时有效。且匿名用户对上层目录有写入的权限。默认为NO

anon_other_write_enable=YES#任选项,若设置为YES,则匿名用户会被允许拥有多于上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

download_enable=YES#任选项,设置下载权限,看情况啦,不需要用户下载可以不添加,需要的话请设置为YES

4.修改文件夹权限,因为现在是root创建的

chmod -R 777

/var/ftp/test2

5.修改服务使用的用户文件

vim/etc/pam.d/vsftpd

a4c26d1e5885305701be709a3d33442f.png选择使用刚才生成的db文件

#%PAM-1.0

session

optional

pam_keyinit.so

force revoke

#auth

required

pam_listfile.so item=user sense=denyfile=/etc/vsftpd/ftpusers

onerr=succeed

#auth

required

pam_shells.so

#auth

include

password-auth

#account

include

password-auth

auth required pam_userdb.so

db=/etc/vsftpd/vuser_passwd

account required pam_userdb.so

db=/etc/vsftpd/vuser_passwd

session

required

pam_loginuid.so

session

include     password-auth

6.测试啦啦啦

同上

安装遇到的问题:

1.配置虚拟用户时各种不能登录到我设置的目录下,登录提示chroot失败,我发现配置也是对的,为啥呢

各种实验之后:发现我拷贝的别人的参数过去,不知道有啥编码问题等等等,最后手动打上去就好了,唉

2.不能上传下载:一定要对设置的local_root改变文件夹权限,因为当前使用root创建的

以下是安装过程时的参考文档,小白一枚

http://www.jb51.net/article/103904.htm

http://blog.csdn.net/lhq9220/article/details/6544755

http://www.cnblogs.com/jefflee168/p/6575014.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值