热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxrootftp服务

前期准备虚拟机vimetcsysconfigselinux修改SELINUXdisablerebootserver虚拟机的版本[root@localhost~]#hostnamec

前期准备

虚拟机
vim /etc/sysconfig/selinux
修改
SELINUX=disable
reboot

server虚拟机的版本

[root@localhost ~]# hostnamectl
Static hostname: n/a
Transient hostname: localhost
Icon name: computer-vm
Chassis: vm
Machine ID: 946cb0e817ea4adb916183df8c4fc817
Boot ID: 58602a448b314991b98037e3a3330feb
Virtualization: kvm
Operating System: Red Hat Enterprise Linux Server 7.0 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.0:GA:server
Kernel: Linux 3.10.0-123.el7.x86_64
Architecture: x86_64

vim /etc/yum.repos.d/yum.repo

[rhel7.0]
name=rhel7.0
baseurl=http://172.25.254.22/rhel7.0
gpgcheck=0

1.ftp的启用

yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd –permanent –add-service=ftp #在防火墙开启时,启用ftp服务(永久性)
firewall-cmd –reload

《linux root------ftp服务》

效果:在网址中输入ftp://172.25.254.122

《linux root------ftp服务》

2.ftp的基本信息

访问数据端口:21
数据传输端口:>1024随机端口
[root@localhost ~]# netstat -antlupe | grep vsftpd
tcp6 0 0 :::21 :::* LISTEN 0 47610 3199/vsftpd
默认发布目录:/var/ftp
访问方式
lftp 172.25.254.122 ##匿名登陆 –> /var/ftp
lftp 172.25.254.122 -u student ##用户登陆 –> /home/student
配置文件:

/etc/vsftpd/vsftpd.conf

[root@localhost ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

3.ftp的安全部署

anonymous_enable=YES|NO #匿名用户是否可以登陆
local_enable=YES|NO #本地用户是否可以登陆
write_enable=YES|NO #本地用户十分可写
每一次修改配置文件,都需要重新启用
systemctl restart vsftpd

默认本地用户可写:
《linux root------ftp服务》

常见错误:
530 认证失败
550 服务本身不支持
500 用户权限过大
553 用户权限过小

4.匿名用户

匿名用户家目录 /var/ftp/pub

1.匿名用户可上传

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

vim /etc/vsftpd/vsftpd.conf
29 anon_upload_enable=YES

systemctl restart vsftpd

172.25.254.122虚拟机:
[root@localhost ~]# ll -d /var/ftp/pub
drwxrwxr-x 2 root ftp 6 Aug 3 2015 /var/ftp/pub

172.25.254.22真机:
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122
lftp 172.25.254.122:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.122:/pub> ls
lftp 172.25.254.122:/pub> put /etc/passwd #匿名用户可写入文件
2323 bytes transferred
lftp 172.25.254.122:/pub> ls
-rw——- 1 14 50 2323 Aug 03 01:12 passwd
lftp 172.25.254.122:/pub> exit

《linux root------ftp服务》

2.匿名用户可下载

添加
anon_world_readable_Only=NO

lftp 172.25.254.122:/pub> ls
-rw——- 1 14 50 980 Aug 03 01:39 group
-rw——- 1 14 50 2323 Aug 03 01:12 passwd
lftp 172.25.254.122:/pub> get passwd
2323 bytes transferred

《linux root------ftp服务》

3.匿名用户建立目录

取消注释
non_mkdir_write_enable=YES

lftp 172.25.254.122:/pub> mkdir test
mkdir ok, `test’ created
lftp 172.25.254.122:/pub> ls
-rw——- 1 14 50 980 Aug 03 01:39 group
-rw——- 1 14 50 2323 Aug 03 01:12 passwd
drwx—— 2 14 50 6 Aug 03 01:41 test

《linux root------ftp服务》

4.匿名用户是否可以删除和重命名

添加
anon_other_write_enable=YES

lftp 172.25.254.122:/pub> ls
-rw——- 1 14 50 980 Aug 03 01:39 group
-rw——- 1 14 50 2323 Aug 03 01:12 passwd
drwx—— 2 14 50 6 Aug 03 01:41 test
lftp 172.25.254.122:/pub> mv passwd west
rename successful
lftp 172.25.254.122:/pub> rm -r test/
rm ok, `test/’ removed
lftp 172.25.254.122:/pub> ls
-rw——- 1 14 50 980 Aug 03 01:39 group
-rw——- 1 14 50 2323 Aug 03 01:12 west

《linux root------ftp服务》

5.匿名用户使用的用户身份修改

默认为ftp
修改
chown_uploads=YES
chown_username=student

《linux root------ftp服务》

6.最大上传速率

anon_max_rate=1024000 #以字节结束,1M

[root@foundation22 html]# dd if=/dev/zero of=/etc/star bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00550747 s, 1.9 GB/s

《linux root------ftp服务》

7.最大链接数

max_clients=1

8.匿名用户的家目录

anon_root=/sheen

虚拟机
[root@localhost ~]# mkdir /sheen
[root@localhost ~]# touch /sheen/file
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd

真机
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122
lftp 172.25.254.122:~> ls
-rw-r–r– 1 0 0 0 Aug 03 02:31 file

《linux root------ftp服务》

5.本地用户

1.本地用户家目录修改

local_root=/directory

2.本地用户上传文件权限

local_umask=xxx

3.限制本地用户锁定在自己家目录中

chroot_local_user=YES
shell:chmod u-w /home/*

《linux root------ftp服务》

4.用户黑名单

touch /etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
–>student

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

《linux root------ftp服务》

5.用户白名单

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

《linux root------ftp服务》

6.限制本地用户登陆

vim /etc/vsftpd/user_list #用户临时黑名单
vim /etc/vsftpd/ftpusers #永久黑名单

7.用户白名单设定

userlist_enable=YES
userlist_deny=NO
vim /etc/vsftpd/user_list #参数设定,此文件变成白名单,在此文件的用户才可以登陆

6.ftp虚拟用户的设定

1.创建虚拟帐号身份

vim /etc/vsftpd/sheenfile #文件名称任意
sheen1
123
star
123

db_load -T -t hash -f /etc/vsftpd/sheenfile /etc/vsftpd/sheenfile.db #加密

vim /etc/pam.d/sheen #认证文件,名称任意
account required pam_userdb.so db=/etc/vsftpd/sheenfile
auth required pam_userdb.so db=/etc/vsftpd/sheenfile

vim /etc/vsftpd/vsftpd.conf
131 pam_service_name=sheen

userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES #认证功能开启
guest_username=ftp #以ftp身份登陆

真机
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122 -u sheen1
Password:
lftp sheen1@172.25.254.122:~> ls
drwxrwxr-x 2 0 50 43 Aug 03 02:18 pub
lftp sheen1@172.25.254.122:/> exit
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122 -u star
Password:
lftp star@172.25.254.122:~> ls
drwxrwxr-x 2 0 50 43 Aug 03 02:18 pub
lftp star@172.25.254.122:/> exit

《linux root------ftp服务》

2.虚拟帐号独立家目录设定

vim /etc/vsftpd/vsftpd.conf

local_root=/ftphome/$USER
user_sub_token=$USER

mkdir /ftphome/sheen1/sheen1dir -p #这里第二个目录要和匿名用户身份一致
mkdir /ftphome/star/stardir -p

echo $USER #SHELL里输出用户
[kiosk@foundation22 Desktop]$ echo $USER
kiosk

真机
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122 -u star
Password:
lftp star@172.25.254.122:~> ls
drwxr-xr-x 2 0 0 6 Aug 03 05:41 stardir
lftp star@172.25.254.122:/> exit
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122 -u sheen1
Password:
lftp sheen1@172.25.254.122:~> ls
drwxr-xr-x 2 0 0 6 Aug 03 05:41 sheen1dir

《linux root------ftp服务》

3.虚拟帐号配置独立

chgrp ftp /ftphome/ -R
chmod 775 /ftphome/sheen1/sheen1dir/
chmod 775 /ftphome/star/stardir/
vim /etc/vsftpd/vsftpd.conf
最后一行添加,把匿名用户的权限注释掉
user_config_dir=/etc/vsftpd/confdir
mkdir /etc/vsftpd/confdir -p
vim /etc/vsftpd/confdir/sheen1 #虚拟用户的权限文件
anon_upload_enable=YES
anon_world_readable_Only=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
systemctl restart vsftpd

真机:
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122 -u sheen1
Password:
lftp sheen1@172.25.254.122:~> ls
drwxrwxr-x 2 0 50 19 Aug 03 06:34 sheen1dir
lftp sheen1@172.25.254.122:/> cd sheen1dir/
lftp sheen1@172.25.254.122:/sheen1dir> put /etc/passwd
put: Access failed: 553 Could not create file. (passwd)
lftp sheen1@172.25.254.122:/sheen1dir> put /etc/group
980 bytes transferred
lftp sheen1@172.25.254.122:/sheen1dir> ls
-rw------- 1 1000 50 980 Aug 03 06:43 group
-rw------- 1 1000 50 2323 Aug 03 06:34 passwd
lftp sheen1@172.25.254.122:/sheen1dir> rm -rf passwd
rm ok, `passwd' removed
lftp sheen1@172.25.254.122:/sheen1dir> put /etc/passwd
2323 bytes transferred
lftp sheen1@172.25.254.122:/sheen1dir> ls
-rw------- 1 1000 50 980 Aug 03 06:43 group
-rw------- 1 1000 50 2323 Aug 03 06:43 passwd
lftp sheen1@172.25.254.122:/sheen1dir> mv group w
rename successful
lftp sheen1@172.25.254.122:/sheen1dir> ls
-rw------- 1 1000 50 2323 Aug 03 06:43 passwd
-rw------- 1 1000 50 980 Aug 03 06:43 w
lftp sheen1@172.25.254.122:/sheen1dir> exit
[kiosk@foundation22 Desktop]$ lftp 172.25.254.122 -u star
Password:
lftp star@172.25.254.122:~> ls
drwxrwxr-x 2 0 50 6 Aug 03 05:41 stardir
lftp star@172.25.254.122:/> cd /stardir/
lftp star@172.25.254.122:/stardir> ls
lftp star@172.25.254.122:/stardir> put /etc/passwd
put: Access failed: 550 Permission denied. (passwd)
lftp star@172.25.254.122:/stardir> ls
lftp star@172.25.254.122:/stardir> exit

《linux root------ftp服务》


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 在win8上安装SQL2000的详细步骤(原创)
    本文详细介绍了在win8操作系统上安装SQL2000的步骤,包括找到安装文件、设置兼容性、输入序列号、选择数据库路径、选择账号模式、输入密码、处理错误提示等。适用于那些想在win8上使用SQL2000的用户。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
author-avatar
U友50081205_653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有