技术标签: linux创建ftp指定目录命令行
虽然有宝塔,有可道云,但是使用命令行建立的FTP还是必须要搞的,比较宝塔和可道云是别人的
FTP服务器简介:
各类的操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,即FTP(File Transfer Protocol)
FTP三类用户:
实体用户。Linux系统中的用户,即系统本机的用户。Linux一般不会针对实体用户进行限制,因此实体用户可以针对整个文件系统进行工作。但通常不希望他们通过FTP方式远程访问系统。
访客用户。只能采用FTP方式使用系统的用户,不能直接使用Shell登录系统,即虚拟用户,访问服务器时需要验证。大多数FTP用户是这类用户。
匿名用户。对于公共性质的服务器可以提供匿名用户访问,用户名:anonymous。但在使用匿名用户时,应对其进行尽可能多的限制,权限较低,如:同时连接的用户数量受限,访问的文件数目受限,不能上传文件,允许操作的指令较少,设置匿用户同时登入的最大联机数量等。
这次装vsftpd,后续会安装pureftpd
# 安装
yum -y install vsftpd
// 服务端
yum -y install ftp
// 客户端
// 如果找不到软件执行下
yum updata
// 如果不想全部更新就n就行,软件列表会更新的
// 会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。
# 启动
systemctl start vsftpd.service
// 设置启动
// start 启动 stop 停止 status 状态 restart 重新启动
systemctl enable vsftpd.service
// bisable 停止
// systeamctl = systemcontrol ?
# 测试
ftp 127.0.0.1
// 账号可用anonymous,密码为空
# 创建访客账号
// 账号为 techftp netftp admftp markftp
// 指定默认访问路径为/zyx/ftp/[账号名目录]
// setsebool命令是用来修改SElinux策略内各项规则的布尔值。setsebool命令和getsebool命令是SELinux修改和查询布尔值的一套工具组
// 简单来说 setsebool设置Policy[策略]的布尔值,以启用或停用某项Policy
// selinx = Security Enhanse[安全增强模式] Linux
// 关于SElinux会写一篇新的文章放在下方
// -P:直接将设置值写入配置文件,该设置数据将来会生效的。 这个解释太......
setseboll -P ftpd_full_access=1
// 设置允许用户上传下载
getsebool -a |grep ftp
// 查找布尔值中的ftp
ftpd_anon_write --> off
//不允许上传
ftpd_connect_db --> off
//不允许FTP连接数据库
ftpd_full_access --> off
//不允许用户上传下载
ftpd_use_cifs --> off
//不允许FTP使用Samba文件系统
ftpd_use_nfs --> off
//不允许FTP使用NFT文件系统
httpd_enable_ftp_server --> off
//不允许httpd 作为 FTP 服务器
# 防火墙:
firewall-amd --list-services
// 查看防火墙列表
firewall-cmd --permanent --zone=public --add-service=ftp
// 新建永久防火墙规则
firewall-cmd --reload
// 重新加载防火墙规则
# 建用户
useradd -g ftp -s /sbin/nologin ftp1
// 新建一个不能登陆的用户ftp1和组ftp
# 连接方法
ftp:[用户名]:[密码]@localhost // 有账号密码
ftp:[ip或域名] // 匿名
常用FTP命令如下表:
命令说明
?查询列出ftp命令
pwd显示远程主机上的当前工作目录
ls显示当前远程目录下的内容
cd切换远程目录
lcd切换本地工作目录
asc纯文本方式传输
bin二进制方式传输
get从远程服务器上download一个文件
put上传一个文件到远程服务器上
mget下载多个文件
mput上传多个文件
bye断开与服务器的连接
quit退出服务器
vsftpd.config配置文件介绍
option=value (选项=值)
需要注意在option=value之间不允许有空白符(空格等),每一个配置项在编译时都有一个默认的设置,可以在配置文件中修改。
注意:在vsftpd.conf里键值对之间不要有空格!!!!
路径:/etc/vsftpd/vsftpd.conf
ftpusers 存放不允许访问的用户
anonymous_enable=yes
// 修改匿名用户是否能登陆 修改后需要重新启动一下
systemctl restart vsftpd
// 重启服务
# 匿名权限上传设置
anon_upload_enable=YES
anon_mkdir_write_enable=YES
setsebool -P ftpd_full_access=1
setsebool -P ftpd_anon_write=1
// 文件权限不够的话 要么更改权限,要么更改所有者
chmod 777 /var/ftp
chown ftp:ftp /var/ftp
// 开放匿名上传权限很危险,慎用!!!
anon_other_write_enable=YES
// 可以新建、删除文件
anon_mkdir_write_enable=YES
// 设置是否允许匿名用户创建目录的同时可以在此目录中上传文件
local_enable=yes
// 设置本地账号是否能够登录
write_enable=yes
// 设置是否开放所有用户写的权限
local_umask=022
// 创建[文件夹文件]的umask掩码
dirmessage_enable=yes
// 打开目录时显示的信息 需要创建一个.message的隐藏文件
chown_uploads=YES
// 更改上传所有者
chown_username=[默认root]
// 更改后的用户名
// 问题: 对普通账户无用,只对匿名账户有效
// 问题: 仅上传文件修改拥有者,创建文件夹不可更改
# 因为登陆账号后可以直接访问根目录,所以要添加以下内容
chroot_local_user=YES
// ch=change 更改本地用户
chroot_list_enable=YES
// 更改根列表开启
// 从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
// 要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:
allow_writeable_chroot=yes
// 所有用户更改全部allow_writeable_changeroot = 允许可写更改根
dirmessage_enable=YES
// 如果文件夹包含.message文件,则访问时显示内容信息
chroot_list_file=/etc/vsftpd/chroot_list
// 更改根用户列表文件位置
vim /etc/vsftpd/chroot_list
// 指定用户做change root
anon_root=/tmp/test
// 更改匿名ftp主目录
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
// 如果 userlist_deny=no 那么只能用下面文件列表里登陆
userlist_deny=no
/etc/vsftpd/user_list
// 现在就算user_list里面有root账号也不能用,需要修改ftpusers文件才能使用root登陆,但是不建议使用
ftpd_banner=Welcome to ZYX FTP service.
// 欢迎信息
idle_session_timeout=[秒]
// The timeout, in seconds, which is the maximum time a remote client may
// spend between FTP commands. If the timeout triggers, the remote client is // kicked off.
// Default: 300(秒)
// 这个参数是指等待输入FTP指令的空闲时间(秒)。初次连上FTP服务后、或上一次FTP指令// 执行完成后,开始计时。相当于使用FTP客户端命令行工具时,出现输入提示符,等待用户输// 入的时间。
// 这个时间超时,客户端的(一个TCP,命令)连接会被断开。
data_connection_timeout=[秒]
// The timeout, in seconds, which is roughly the maximum time we permit data // transfers to stall for with no progress.
// If the timeout triggers, the remote client is kicked off.
// Default: 300(秒)
// 这个参数是指等待数据传输(上传/下载)的空闲时间(秒)。当FTP服务端每接收/或发送一// 次数据包(trans_chunk_size大小,默认值是8KB),就会复位一次这个定时器。相当于使用// FTP客户端命令行工具时,出现传输速率为0的持续时间。
// 这个时间超时,客户端的(两个TCP,命令与数据)连接都会被断开。
// 当 data_connection_timeout 定时器启动时,idle_session_timeout定时器会停止。即// 两个定时,同一时刻只有一个有效!
匿名用户设置
配置项描述可选值
anonymous_enable设置是否允许匿名登录yes|no
anon_upload_enable设置是否开放上传权限,允许匿名上传yes|no
anon_mkdir_write_enable设置是否允许匿名用户创建目录的同时可以在此目录中上传文件yes|no
anon_other_write_enable设置匿名用户是否有删除的权限yes|no
anon_world_readable_only若设置为yes,则匿名用户不仅可以上传和建立目录,而且可以删除和更改文件和目录yes|no
anon_root设置匿名用户登录后所在的目录默认值:/var/ftp
本地用户设置
配置项描述可选值
local_root设置本地用户登录后的目录默认值:/var/ftp
write_enable设置是否开放本地用户写的权限yes|no
local_enable设置本地账号是否能够登录。如果设置为yes,/etc/passwd内的账号都可以使用ftp服务登录系统,使用ftp服务上传下载文件资源yes|no
userlist_enable设置user_list文件是否生效yes|no
local_max_rate设置本地用户所能使用的最大传输速度,单位是B/s,设置为0表示不受速度限制0
服务相关设置
配置项描述可选值
connect_form_port_20启用FTP数据端口20的数据连接yes|no
listen_port设置FTP服务器监听客户端连接的端口默认值:21
listen设置独立的vsftpd服务器yes|no
dirmessage_enable设置是否显示目录信息。当切换目录时,显示目录下.message的内容yes|no
ftpd_banner设置登录欢迎信息
anon_max_rate匿名用户所能使用的最大传输速度,单位是B/s。设置为0表示不受速度限制0
max_clients表示服务器最多可以连接多少客户端。0表示不限制,具体的数字表示客户端最大的限制数目0
max_per_IP表示同一个IP的客户端最多连接数量2
accept_timeout表示连接服务器的超时时间,单位是秒
data_connection_timeout表示数据传输超时时间,单位是秒
idle_session_timeout表示多长时间对服务器没有任何操作后断开服务器连接,单位是秒
ascii_download_enable设置是否启用ASCII模式下载数据yes|no
ascii_upload_enable设置是否启用ASCII模式上传数据yes|no
主动与被动服务设置
FTP服务器的主动与被动服务是从FTP工作方式划分的。主动方式标记为PORT FTP,被动方式标记为PASV FTP。无论主动和被动,服务器首先用21端口接受客户端的连接。接下来传输数据才分主动和被动方式。
主动方式是服务器主动采用20端口发送数据给客户端。被动方式是客户端主动接受FTP服务器的数据,这样服务器变成了被动方式。被动方式传输数据使用的端口号通常是一个范围,这个范围使用如下配置:
passv_min_prot=65200
passv_max_prot=65400
同时,具体使用什么端口号是客户端提出的。为了保证客户端提出的端口号与服务器范围相适应,客户端在连接的同时要指定被动方式。
2019独角兽企业重金招聘Python工程师标准>>> ...
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)题目分析这里有一个陷阱,栈的弹出序列不一定是栈的压入序列的倒序,因为有可能在压入的过...
[20160429]建立Extended Statistics 和函数索引问题.txt --11G支持相关数据的统计分析,比如如果两个字段存在相关性通过分析,能够得到更加良好的统计信息,以及生成好的执行计划. --但是如果结合函数索引呢?通过一个简单的例子来说明: --前次做的测试: http://blog.it...
43个功能测试点总结 软件测试 功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。针对Web系统的常用测试方法如下: 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。LinkBotPro不支持...
基于mini2440的UBOOT UART设置1. 标准9针串口引脚定义根据图3.40的引脚顺序号,如果是作为RS-232C接口,则各引脚定义如表3.2所示。表3.2RS-232C引脚意义表各引脚的电气特性为:在TxD和RxD上,逻辑“1”为-3V~-15V; 逻辑“0”为+3V~+15V。在RTS、CTS、DSR、DTR和DCD等控制线上,信号有效为+3V~+
标签:实例化方法和使用方法实例化方法:使用字符串初始化- (id)initWithString:(NSString*)str;例:NSMutableAttributedString*AttributedStr = [[NSMutableAttributedStringalloc]initWithString:@"今天天气不错呀"];- (id)init...
ETL中增量更新是一个比较依赖与工具和设计方法的过程,Kettle中主要提供Insert / Update 步骤,Delete 步骤和Database Lookup 步骤来支持增量更新,增量更新的设计方法也是根据应用场景来选取的,虽然本文讨论的是Kettle的实现方式,但也许对其他工具也有一些帮助。本文不可能涵盖所有的情况,欢迎大家讨论。应用场景增量更新按照数据种类的不同大概可以分成:
7-4 BCD解密 (10 分)BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。输入格式:输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这
1、获取设备IMEI TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String IMEIs = tm.getDeviceId() ;需要的权限 <uses-permission androi...
-----如果你的代码不知道放哪里好,放到github是一个不错的选择。下面奉上一文入门级别的配置篇。(以下配置同时适用于window和linux) 在github注册完后,首先创建一个仓库(repositry),在你的个人页面右边"Your Repositories"模块,点击 New repository,这里我们把project name 填写
snmpd作为一个服务,本身有系统的一些信息,外部可以通过snmp -get ,walk来获取,而snmptrap理解为一个陷阱,等着掉进来猎物,就是一个收数据的服务,但是收到的数据和snmpd中呈现的数据时互不相关的,两个是独立的,snmptrap收到的数据打到一个日志文件中,通过snmptt可以进行简单的过滤操作,使得拿到的数据更加的符合要求。snmptrap数据收集流程s...