良许Linux教程网 干货合集 Linux系统ftp详解

Linux系统ftp详解

ftp用最简单的话来解释就是:一个文件数据协议,可以双向传输。

一、检查安装vsftpd软件

# rpm -qa |grep vsftpd

img

可以检测出是否安装了vsftpd软件,上图表示已安装;

二、如果没安装使用yum命令进行安装

 # yum -y install vsftpd

三、ftp的配置文件的设置,/etc/vsftpd/vsftpd.conf, /etc/vsftpd/ftpusers, /etc/vsftpd/user_list。

vsftpd.conf**文件说明**

anonymous_enable=YES //是否允许anonymous登录FTP服务器,默认是允许的.

local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许

write_enable=YES //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许

    local_umask=022 //设置本地用户的文件生成掩码为022,默认是077

    anon_mkdir_write_enable=YES //是否允许匿名账户在FTP服务器中创建目录

    dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息

    xferlog_enable=YES //启用上传和下载日志功能

    connect_from_port_20=YES  //启用FTP数据端口的连接请求

    xferlog_file=/var/log/vsftpd.log //设置日志文件的文件名和存储路径,这是默认的

    xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式

    idle_session_timeout=600 //设置空闲的用户会话中断时间,默认是10分钟

ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件

chroot_list_enable=YES //如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项,如果设置 chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户具有该功能.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES

     pam_service_name=vsftpd //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.

userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许

    listen=YES //使vsftpd 处于独立启动模式

    tcp_wrappers=YES //使用tcp_wrqppers作为主机访问控制方式

vsftpd.ftpusers**文件说明**

这个文件是用来记录”**不允许”登录到FTP服务器的用户**,通常是一些系统默认的用户.。

    下面是该文件中默认的不允许登录的名单:

# Users that are not allowed to login via ftp

root //默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.

bin

daemon

adm

lp

sync

shutdown

vsftpd.user_list**文件说明**

其实它的内容跟上面那个文件内容一样,**只是在系统对文件vsftpd.conf** 进行检测时,**会检测到”userlist_deny=YES”,因此这个文件必须存在**

# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and

# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers

# for users that are denied.

root

bin

daemon

adm

lp

如果不想复杂就直接保证:/etc/vsftpd/vsftpd.conf的下面三项为YES就可以了。

         anonymous_enable=YES

         anon_upload_enable=YES

         anon_mkdir_write_enable=YES

img

四、vsftpd的启动(CentOS7)

systemctl restart vsftpd 重启

systemctl start vsftpd  启动

systemctl status vsftpd 状态

4、查看可以查看vsftpd是否启动

# ps -aux | grep ftpd  # netstat -na | grep 21

# netstat -tunlp | grep 21

五:创建用户权限

最简单的方法:创建用户:useradd +用户名

            修改密码:passwd +用户名

然后对文件夹的权限赋给所有人:chmod 777 /usr(文件名)

以上为最简便的方法,但是有安全风险。

1、创建用户,并指定分组和主目录(根据自己的需求设定参数)

   useradd -d /opt/reconciliation -s /sbin/nologin -g ftpGroup -G root ftpUser

   解析:

      useradd 添加用户ftpUser

      -d 指定用户根目录为/opt/reconciliation

      -s 指定shell脚本为/sbin/nologin,表示不允许shell登录  (vi /etc/passwd 编辑用户shell权限的地方)

      -g 创建分组ftpGroup

      -G 指定root分组

   PS:创建有问题可以删除重新创建 userdel -r ftpUser

2、设定密码   passwd ftpUser

3、设置访问权限

   chown ftpUser /opt/reconciliation/

更改ftp配置文件   修改配置文件/etc/vsftpd/vsftpd.conf并设定或删掉注释:

  userlist_enable=NO   anonymous_enable=NO   chroot_list_enable=YES   chroot_list_file=/etc/vsftpd/chroot_list

  打开vi /etc/vsftpd/user_list并增加一行:   ftpUser   新建文件vi /etc/vsftpd/chroot_list并增加一行   ftpUser

4、配置用户ftp权限及访问路径限制:

  此时用usertest登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。打开/etc/vsftpd/vsftpd.conf,查找userlist_enable、userlist_deny、userlist_file。如果 userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果 userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开 关。我们的系统配置如下:

  userlist_enable=YES   userlist_deny=NO   userlist_file=/etc/vsftpd/user_list   所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。

  由于该主目录是mpsp用户建的,usertest是mpsp组的成员,所以usertest默认具有增删查改权限;而usertest作为 mpsp组成员,对/home/mpsp下的所有路径具有访问权限(根据各目录的权限设置,默认是这样),登录ftp后会发现,usertest用户可以 访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将usertest用户的访问范围控制在其主目录下。方法如下:

  1. cd /etc/vsftpd 进入ftp配置文件目录   2. vi vsftpd.conf编辑此文件,找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能   找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list   3. 编辑chroot_list文件,加入你要限制的用户名,一行一个用户。

  如果更新了vsftpd.conf,一定要重启ftp

六:权限设置

  -**rw-r–r–.** 1 root root 1944 5月 18 17:21 initial-setup-ks.cfg

  一共有10位数   其中: 最前面那个 – 代表的是类型,如果是目录,最前面这个是d   中间那三个 rw- 代表的是所有者(user)   然后那三个 rw- 代表的是组群(group)   最后那三个 r– 代表的是其他人(other)   然后我再解释一下后面那9位数:   r 表示文件可以被读(read)   w 表示文件可以被写(write)   x 表示文件可以被执行(如果它是程序的话)   - 表示相应的权限还没有被授予  现在该说说修改文件权限了:   在终端输入:   chmod o+w xxx.xxx   表示给其他人授予写xxx.xxx这个文件的权限   chmod go-rw xxx.xxx   表示删除xxx.xxx中组群和其他人的读和写的权限  其中:   u 代表所有者(user)   g 代表所有者所在的组群(group)   o 代表其他人,但不是u和g (other)   a 代表全部的人,也就是包括u,g和o   r 表示文件可以被读(read)   w 表示文件可以被写(write)   x 表示文件可以被执行(如果它是程序的话)   其中:rwx也可以用数字来代替   r ————4   w ————2   x ————1   - ————0  行动:   + 表示添加权限   - 表示删除权限   = 表示使之成为唯一的权限  当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:   -rw——- (600) 只有所有者才有读和写的权限   -rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限   -rwx—— (700) 只有所有者才有读,写,执行的权限   -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限   -rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限   -rw-rw-rw- (666) 每个人都有读写的权限   -rwxrwxrwx (777) 每个人都有读写和执行的权限

  举例:

    chmod 777 /home/user  注:仅把/home/user目录的权限设置为rwxrwxrwx

    如果想把单独的文件给对应的账号设置权限,要用对应的账户去登录linux去设置这个账号例如:我想把 /home/user这个文件给admin权限只读权限

    就要用admin账号登录 设置 chmod 500 /home/user(4是只读,最好每次把1加上 也就是5)

  特殊的时候:

   setfacl -m u:admin:rwx /home/mengniu_xm/mengniu_r  用的这个命令 给单独用户 单独文件设置权限(mengniu_r给admin账号rwx权限)

   setfacl -R -m u:admin:rwx /home/mengniu_xm/mengniu_wr(加个-R 实际过程中出现admin账号不能删除文件的情况 加上这个就可以了)

七、连接方式

1.Linux系统本地连接

 安装ftp执行命令:# yum -y install ftp

 连接命令:      # ftp 127.0.0.1

 输入账号密码:下图230表示连接成功

img

2.window连接

方法一:

img

方法二:

img

ftp工具软件有很多,大家觉得那个工具最好用啊。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部