【FTP】linux下安装FTP,指定账户登陆,只可上传,不可以下载、修改和删除

来源:互联网 发布:类似trackid的软件 编辑:程序博客网 时间:2024/04/30 02:08

需求描述

在linux系统里安装一个FTP服务器,实现上传文件。
登陆要求:指定账户登陆,不可匿名登陆。
权限要求:只能上传,不可以下载。同时,不可以对上传的文件进行修改和删除。

具体实现

安装FTP服务器(需要root权限):

yum -y install vsftpd

安装成功后,进行文件文件配置

cd /etc/vsftpd/vim vsftpd.conf

下面是我的配置文件

# Default umask for local users is 077. You may wish to change this to 022,# if your users expect that (022 is used by most other ftpd's)local_umask=022# 弹出提示框dirmessage_enable=YES# The target log file can be vsftpd_log_file or xferlog_file.# This depends on setting xferlog_std_format parameterxferlog_enable=YES# Make sure PORT transfer connections originate from port 20 (ftp-data).connect_from_port_20=YES# Switches between logging into vsftpd_log_file and xferlog_file files.# NO writes to vsftpd_log_file, YES to xferlog_filexferlog_std_format=YESlisten=YESpam_service_name=vsftpdtcp_wrappers=YES#默认允许匿名登陆,anonymous_enable=NO显示指定不允许匿名登陆anonymous_enable=NO# 允许本地用户登陆local_enable=YES# 可以上传write_enable=YES# 不可以下载download_enable=NO# 下面三行对/etc/vsftpd/user_list文件里面的用户限制登陆userlist_enable=YESuserlist_deny=YESuserlist_file=/etc/vsftpd/user_list

下面创建指定的FTP登陆账户

#创建系统账户useradd ftpusr#设置登陆密码passwd ftuser# 设置该用户不能登陆linux系统usermod -s /sbin/nologin ftpuser

ftpuser的现在的权限是可以上传文件,不可以下载文件。ftpuser默认的访问目录是/home/ftpuser。现在对/home/ftpuser文件夹下的文件限制修改和删除权限。

# 下面命令表示只能对ftpuser追加内容,不可以修改和删除# 对于ftpuser下的文件夹(例如folder)的限制为不可以修改和删除,但对folder下的文件不起任何限制作用。# 如果需要进一步限制,可以使用命令chattr +a /home/ftpuser/folder/chattr +a /home/ftpuser/

启动FTP服务器,完成FTP服务器的搭建。

service vsftpd start

登陆问题

SELINUX的问题

如果FTP服务器无法登陆,可能的原因是linux自带的安全机制SELINUX=enforing,将其修改为SELINUX=disable。
查看SELINUX的状态,

/usr/sbin/sestatus -vvim /etc/sysconfig/selinuxSELINUX=disable

状态生效需要重启服务器。

防火墙的问题

远程访问FTP服务器,无法登陆也可能是防火墙的问题。

vim /etc/sysconfig/iptables# 增加允许规则-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
原创粉丝点击