ubuntu ftp上传文件,ubuntu ftp客户端

大家好,感谢邀请,今天来为大家分享一下ubuntu ftp上传文件的问题,以及和ubuntu ftp客户端的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

Ubuntu实现FTP功能

FTP软件种类繁多,每种软件都有其特点和适用场景。对于Ubuntu服务器实现FTP功能,可以选择多种软件,如WuFTP、ProFTPD、VSFTPD等。WuFTP虽然较旧,但功能强大,设置较为复杂。ProFTPD功能全面,与server-u.security相似,但配置相对复杂。VSFTPD是Linux系统中常用的FTP软件,其安全性高且配置简单,是网站管理者的首选。

在Ubuntu服务器上实现FTP功能,选择VSFTPD更为合适。VSFTPD不仅具有强大的功能,而且配置简单,特别适用于网站管理。在配置VSFTPD时,需要备份原配置文件,修改配置以实现所需功能。例如,启用匿名登录、目录消息显示、本地文件权限设置等。

为了开放上传权限,需要在VSFTPD的配置文件中添加相应的配置项。例如,设置anon_upload_enable为"是的",以允许匿名用户上传文件。同时,为匿名用户创建目录时提供写入权限,使用anon_mkdir_write_enable配置项设置为"是的"。此外,还需要为匿名用户分配删除权限,使用anon_other_write_enable设置为"是的"。

为本地用户登录提供权限,设置local_enable为"是的"。为了确保用户只能在其主目录中输入,并在本地文件中设置写权限,可以使用write_enable配置项设置为"是的"。同时,为了限制本地用户访问FTP目录,可以使用userlist_enable配置项设置为"是的",并为每个允许访问的用户在userlist_file中指定路径。

为了提高安全性,可以设置会话空闲超时、数据连接超时、接受超时、连接超时等参数,以防止资源浪费和攻击。此外,还需要限制本地用户和匿名用户的传输速率,使用local_max_rate和anon_max_rate配置项进行设置。为了进一步提高安全性,可以使用chroot功能限制本地用户登录目录,并使用chroot_local_user配置项设置为"是的"。

总之,在Ubuntu服务器上实现FTP功能,选择合适的FTP软件并正确配置其功能和安全性参数至关重要。VSFTPD以其简单、安全的特性,成为实现FTP功能的理想选择。通过遵循上述步骤,可以轻松地在Ubuntu服务器上实现强大的FTP功能。

ubuntu crontab 定时备份postgres数据库并上传ftp服务器

为了实现 Ubuntu系统中定时备份 PostgreSQL数据库并上传至 FTP服务器,可以通过编写一个脚本并利用 crontab定时任务来自动化这一过程。下面是一个详细的步骤和实现过程。

首先,编写备份脚本 bk.sh,用于执行 PostgreSQL数据库的备份操作。脚本如下:

#!/bin/bash

#服务器参数配置

DUMP=/usr/lib/postgresql/9.3/bin/pg_dump

OUT_DIR=/home/postgres_data

LINUX_USER=root

DB_USER=postgres

FTP_IP=127.0.0.1

FTP_PORT=21

FTP_USR=cz

FTP_PWD=cz

DAYS=7

#进入备份存放目录

cd$OUT_DIR

#获取当前系统时间

DATE=`date+%Y_%m_%d`

#备份数据库的文件名

OUT_SQL="$DATE.sql"

#备份数据库

$DUMP-U$DB_USER-E utf-8>$OUT_SQL

#压缩备份文件为.tar.gz格式

tar-czf$TAR_SQL./$OUT_SQL

#删除.sql格式的备份文件

rm$OUT_SQL

#更改备份数据库文件的所有者

chown$LINUX_USER:$LINUX_USER$OUT_DIR/$TAR_SQL

#删除7天前的备份文件

find$OUT_DIR-name"mysqldata_bak_*"-type f-mtime+$DAYS-exec rm{} \;

#获取7天前的时间

deldate=` date-d-7day+%Y_%m_%d `

#上传备份文件至 FTP服务器

ftp-n

#打开 FTP服务器

open$FTP_IP$FTP_PORT

#登录 FTP服务器

user$FTP_USR$FTP_PWD

#设置二进制传输

binary

#上传目录中的文件

put mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz

#删除 FTP服务器上7天前的备份文件

delete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz

#关闭 FTP连接

close

接下来,编写 crontab文件,使脚本 bk.sh定期执行。确保以 root用户身份进行操作。

vi/etc/crontab

在 crontab文件中添加如下内容以执行脚本 bk.sh,具体格式如下:

***** root/path/to/bk.sh

保存并退出 crontab文件。系统级别的 crontab一旦保存即可生效。

在执行过程中,可能会遇到一些问题,下面列举了一个问题和相应的解决方案:

问题 1:关于 crontab有两种方式:一个是/etc/crontab,另一个是 crontab-e。这两者有何区别?

解答:/etc/crontab是系统级别的 crontab,用于管理所有用户的定时任务。而 crontab-e则是针对单个用户的 crontab,主要用于编辑个人的定时任务。通常建议使用/etc/crontab,因为它能够更高效地管理和维护系统的定时任务。

在实际应用中,要确保脚本路径正确,并且使用绝对路径。同时,根据实际情况调整 FTP服务器的 IP、端口、用户名、密码等参数。备份和上传操作完成后,会自动删除过期的备份文件以节省存储空间。这样,您就可以实现自动化备份和文件上传功能,提高工作效率。

如何在ubuntu中安装设置ftp服务器

FTP服务器是平时应用最为广泛的服务之一。VSFTP是Very Secure

FTP的缩写,意指非常安全的FTP服务。VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务。

首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有:

1、如何添加FTP用户?

2、如何临时冻结某FTP用户?

3、FTP用户登入后的默认目录?是否可以改变?

4、如何锁定FTP用户可访问的目录范围?

5、FTP用户可以有哪些访问权限?可否上传文件?

我们将带着这些问题来探讨如何配置VSFTP以达到预定目标。

一、主要配置选项

VSFTP的主配置文件是/etc/vsftpd.conf

。由于可配置的选项实在太多,无法一一详谈,只能截取比较常用的功能配置选项来加以说明。完整说明可参考man

vsftpd.conf。

这里需要注意的是,每个配置选项都是由“配置项目名称=配置值“所定义。在每个配置变量后,要紧跟等号,再紧跟设置的变量值。中间不允许出现空格之类的分隔符,否则导致配置错误,无法生效!

另外,如果需要开通上传功能,则应注意用来登录FTP的本地系统用户对要操作的目录需要具备写权限,否则无法上传文件!

版本vsftpd: version 2.0.6

启动VSFTPD:sudo/etc/init.d/vsftpd start

停止VSFTPD:sudo/etc/init.d/vsftpd stop

重启VSFTPD:sudo/etc/init.d/vsftpd restart

以下为常用的配置选项:

1、listen=YES

若设置为YES,开启监听网络。

2、anonymous_enable

若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。

如果开启的话,则可以通过用户名ftp或者anonymous来访问,密码随便。

3、local_enable

若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。如果你拒绝了陌生人访问,那么这个必须设置为YES吧,否则谁能访问你的FTP呢?

4、write_enable

若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。

若为NO则所有FTP用户都无法写入,包括无法新建、修改、删除文件、目录等操作,也就是说用户都没办法上传文件!!

5、anon_upload_enable

若设置为YES,开启匿名用户的上传权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。

若设置为NO,则关闭匿名用户的上传权限。

6、anon_mkdir_write_enable

若设置为YES,开启匿名用户新建目录的权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。

若设置为NO,则关闭匿名用户新建目录的权限。

7、dirmessage_enable

若设置为YES,则可开启目录信息推送,也就是用户登录FTP后可以列出当前目录底下的文件、目录。这个应该要开启吧!

8、xferlog_enable

若设置为YES,则开启登录、上传、下载等事件的日志功能。应开启!

9、xferlog_file=/var/log/vsftpd.log

指定默认的日志文件,可指定为其他文件。

10、xferlog_std_format

若设置为YES,则启用标准的ftpd日志格式。可以不启用。

11、connect_from_port_20

若设置为YES,则服务器的端口设为20。

如果不想用端口20,可以另外通过ftp_data_port来指定端口号。

12、chown_uploads

若设置为YES,则匿名用户上传文件后系统将自动修改文件的所有者。

若要开启,则chown_username=whoever也需指定具体的某个用户,用来作为匿名用户上传文件后的所有者。

13、idle_session_timeout=600

不活动用户的超时时间,超过这个时间则中断连接。

14、data_connection_timeout=120

数据连接超时时间。

15、ftpd_banner=Welcome to blah FTP

service.

FTP用户登入时显示的信息。

16、local_root=/home/ftp

指定一个目录,用做在每个本地系统用户登录后的默认目录。

17、anon_root=/home/ftp

指定一个目录,用做匿名用户登录后的默认目录。

18、chroot_local_user、 chroot_list_enable、chroot_list_file

这个组合用于指示用户可否切换到默认目录以外的目录。

其中,chroot_list_file默认是/etc/vsftpd.chroot_list,该文件定义一个用户列表。

若chroot_local_user

设置为NO,chroot_list_enable设置为NO,则所有用户都是可以切换到默认目录以外的。

若chroot_local_user

设置为YES,chroot_list_enable设置为NO,则锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。

若chroot_local_user

设置为YES,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动。

若chroot_local_user设置为NO,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都被限定在各自的默认目录活动,而列表以外的用户则可以访问默认目录以外的目录。

建议设置:chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!

好处:所有人都被限制在特定的目录里面。如果某些特定用户需要访问其他目录的权限,只需将其用户名写入chroot_list_file文件就可以赋予其访问其他目录的权限!

19、userlist_file、userlist_enable、userlist_deny

这个组合用于指示用户可否访问FTP服务。

其中,userlist_file默认是/etc/vsftpd.user_list,该文件定义一个用户列表。

若userlist_enable设置为YES,userlist_deny设置为NO,则只有userlist_file所指定的文件里面的用户列表里面的用户可以访问FTP。

若userlist_enable设置为YES,userlist_deny设置为YES,则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。

若userlist_enable设置为NO,userlist_deny设置为YES,则这个列表没有实际用处,起不到限制的作用!因为所有用户都可访问FTP。

建议设置:userlist_enable与userlist_deny都设置为YES。这样则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。

好处:只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!

20、user_config_dir

指定一个目录用于存放针对每个用户各自的配置文件,比如用户kkk登录后,会以该用户名建立一个对应的配置文件。

比如指定user_config_dir=/etc/vsftpd_user_conf,

则kkk登录后会产生一个/etc/vsftpd_user_conf/kkk的文件,这个文件保存的配置都是针对kkk这个用户的。可以修改这个文件而

不用担心影响到其他用户的配置。

二、我的VSFTP的配置方案

#首先要安装VSFTP。源码编译或软件包安装都可以。

#以下方案实现以下功能:

#1、锁定用户在/home/ftp默认目录活动,

#

并保留/etc/vsftpd.chroot_list文件里面的用户列表可访问其他目录。

#2、具备暂时冻结FTP用户的功能,将需暂停的用户名加入到/etc/vsftpd.usr_list即可。

#

#设置配置文件:

#复制以下文件并保存为/etc/vsftpd.conf

#新建两文件:touch/etc/vsftpd.chroot_list

#

touch/etc/vsftpd.user_list

#新建目录:mkdir/home/ftp

#新建群组:addgroup ftp

#修改/home/ftp属性:chown ftp:ftp/home/ftp

#新增FTP用户: adduser--shell/bin/false--home/home/ftp

your_usr_name

#把需要开通FTP的用户名加入到ftp群组:usermod-aG ftp your_usr_name

#注意:

#如果你的/etc/shells里面没有包含/bin/false,则你用上述的方法建立的用户将法访问#FTP,解决方法:编辑/etc/shells,加入/bin/false这行。

#

# Example config file/etc/vsftpd.conf

listen=YES

#listen_ipv6=YES

anonymous_enable=YES

local_enable=YES

write_enable=YES

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES

#chown_username=whoever

#xferlog_file=/var/log/vsftpd.log

#xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP

service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd.banned_emails

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

#ls_recurse_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

anon_root=/home/ftp

local_root=/home/ftp

userlist_file=/etc/vsftpd.user_list

userlist_enable=YES

userlist_deny=YES

三、回答前面提到的问题

1、如何添加FTP用户?

设置local_enable为YES可以开放系统用户访问FTP。

在系统里面添加用户,将shell设置为/bin/false,并将其家目录若设置为/home/ftp或者其他目录。这样就可以建立只访问FTP而无法登录shell环境的用户。

注意:可以新建一个ftp组,把/home/ftp的所有者设为ftp,群组也设为ftp。然后所有新添加的FTP用户只需加入到FTP群组就可以具有对/home/ftp的访问权限了。这样也方便管理用户量比较大的FTP系统。如:

sudo addgroup ftp#如果有了就不用添加

sudo chown ftp:ftp/home/ftp#如果改过了就不用再改

sudo adduser--shell/bin/false--home/home/ftp user1

#添加用户user1

sudo usermod-aG ftp

user1#把用户user1加入到ftp组

这样便可以通过用户名user1来访问FTP服务了。

2、如何临时冻结某FTP用户?

将userlist_enable与userlist_deny都设置为YES。这样userlist_file所指定的文件里面的用户列表里面的用户都

被拒绝访问FTP。只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!如需重新开通使用权

限,则只需从该文件中去掉相应的用户名。

3、FTP用户登入后的默认目录?是否可以改变?

可以通过local_root、anon_root来指定相应的默认目录。

4、如何锁定FTP用户可访问的目录范围?

将chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件

里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!如果某些特定用户需要访问其他目录的权限,只需将其用户名写

入chroot_list_file文件就可以赋予其访问其他目录的权限!

5、FTP用户可以有哪些访问权限?可否上传文件?

设置write_enable可以开启全局的写权限。这样FTP用户就可以在本地帐号管理系统允许的范围内进行写操作了

阅读剩余
THE END