CentOS7安装FTP服务及添加FTP用户并设置权限
由于是私用,本次安装前早已关闭了防火墙,所以省了一些步骤使可以直接进行FTP服务安装,如果防火前没有关闭,可以修改配置文件.1.关闭防火墙[root@localhost ~]#systemctl stop firewalld.service#关闭防火墙[root@localhost ~]#systemctl disable firewalld.service#...
由于是私用,本次安装前早已关闭了防火墙,所以省了一些步骤使可以直接进行FTP服务安装,如果防火前没有关闭,可以修改配置文件.
1. 关闭防火墙
[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]#systemctl disable firewalld.service #禁止防火墙开机启动
2. 如果考虑安全问题不想关闭防火墙,再次可安装iptables防火墙
[root@localhost ~]#yum install iptables-service #安装iptable防火墙
[root@localhost ~]#cat /etc/sysconfig/iptables #编辑iptables防火墙配置文件
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
配置ps:21端口是ftp服务端口;10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口。
[root@localhost ~]#systemctl restartiptables.service #重启防火墙使配置生效
[root@localhost ~]#systemctl enableiptables.service #使防火墙开机启动
3. 关闭SELINUX
先在这里说一下为什么关闭SELINUX,因为后期维护很麻烦!!!!
[root@localhost ~]#cat /etc/selinux/config #修改selinux配置文件
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
[root@localhost ~]#sentenforce 0 #使配置立即生效
4. 安装vsftpd
[root@localhost ~]#vsftpd –v #查看系统里面是否有ftp服务
[root@localhost ~]#yum install –y csftpd #安装vsftpd
[root@localhost ~]#yum install -y psmiscnet-tools systemd-devel libdb-devel perl-DBI
#安装vsftpd虚拟用户配置依包
[root@localhost ~]#systemctl start vsftpd.service #启动
[root@localhost ~]#systemctl enable vsftpd.service #设置vsftpd开机启动
5. 匹配vsftp服务器
[root@localhost ~]#cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak #备份默认配置文件
然后可以直接复制并执行下面命令,完成设置
sed -i"s/anonymous_enable=YES/anonymous_enable=NO/g"'/etc/vsftpd/vsftpd.conf'
sed -i"s/#anon_upload_enable=YES/anon_upload_enable=NO/g"'/etc/vsftpd/vsftpd.conf'
sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g"'/etc/vsftpd/vsftpd.conf'
sed -i"s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g"'/etc/vsftpd/vsftpd.conf'
sed -i"s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g"'/etc/vsftpd/vsftpd.conf'
sed -i"s/#ascii_download_enable=YES/ascii_download_enable=YES/g"'/etc/vsftpd/vsftpd.conf'
sed -i"s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTPservice./g" '/etc/vsftpd/vsftpd.conf'
echo -e"use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300
\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=ftp
\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES
\npasv_min_port=10060\npasv_max_port=10090
\naccept_timeout=5\nconnect_timeout=1">> /etc/vsftpd/vsftpd.conf
ps:在此注意标红的字段,nguest_username=ftp是等会我们需要新建的一个系统用户,在这里先可以将名称命名,也可先创建用户,再执行匹配服务器的操作;反之也可先创建用户。
1. 建立虚拟用户名单
[root@localhost ~]#touch /etc/vcftpd/virt_users
## 编辑虚拟用户名单文件:(第一行是账号,紧跟换行是密码,多用户类推即可,注意:不能使用root做用户名,系统保留),下面是新建两个虚拟用户 user1和user2
[root@localhost ~]#cat /etc/vcftpd/virt_users
user1
123456
user2
123456
2. 生成虚拟用户数据文件
[root@localhost ~]#db_load -T -t hash -f/etc/vsftpd/virt_users /etc/vsftpd/virt_users.db
[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
3. 在 /etc/pam.d/vsftpd 的文件头部加入一下信息
[root@localhost ~]#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak #修改前先备份
[root@localhost ~]#cat /etc/pam.d/vsftpd #修改文件内容,将下面两句加在vsftpd文件的头部,加载后面会无效
#%PAM-1.0
auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virt_users
account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virt_users
#上面两句是新加的
注意:如果系统为32位,上面改为lib,否则配置失败
session optional pam_keyinit.so force revoke
auth required pam_listfile.soitem=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
4. 新建系统用户 ftp , 用户目录为/home/FTPpath, 用户登录终端设为/bin/false(即使之不能登录系统)
[root@localhost ~]#useradd ftp –d /home/FTPpath –s /bin/false
[root@localhost ~]#chown ftp:ftp/home/FTPpath –R
5. 建立虚拟用户个人vsftp的配置文件
[root@localhost ~]#mkdir /etc/vsftpd/vconf
[root@localhost ~]#cd /etc/vsftpd/vconf
[root@localhost ~]#touch user1 user2 #创建两个虚拟用户的配置文件
[root@localhost ~]#mkdir –p /home/FTPpath/file #新建ftp数据传输并有用户权限的文件夹
[root@localhost ~]#mkdir -p /home/FTPpath/soft
[root@localhost ~]cat user1
local_root=/home/FTPpath/file
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES
[root@localhost ~]cat user2
local_root=/home/FTPpath/soft
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES
1. 最后重启vsftpd服务器
[root@localhost ~]#systemctl restart vsftpd.service
注意:
Vsftpd的服务器部署安装已经完成,但是在上传和下载可能 会出现权限不够的情况,导致不能下载和上传文件
将要上传到服务器上的文件夹的权限改为777,如
[root@localhost ~]#chmod-R 777 /home/FTPpath
软连接也是很有用的一个命令, 它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,
1.软链接:
建立软链接:ln -s/usr/local/node-v4.2.6-linux-x86/bin/node /usr/local/bin/node
解释:将/usr/local/node-v4.2.6-linux-x86/bin/下的node映射到/usr/local/bin/下的node
删除软链接:rm -rf/usr/local/bin/node
例如: [root@localhost~]#ln -s /home/apache-tomcat-7.0.59-x64/webapps/project/ /home/FTPpath/tangyong
将project文件中内容软连接到tangyong文件中,
删除软连接切记最后不可加 ”/” 否则会将文件夹删除
更多推荐
所有评论(0)