ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux ftp实验

2022-01-19 19:33:08  阅读:128  来源: 互联网

标签:ftp 用户 192.168 vsftpd 实验 Linux root localhost


实验环境 Linux 且安装了vsftpd这个软件

 yum install vsftpd -y

a.配置匿名用户:

        可以匿名登录和下载文件
        可以上传文件,且上传文件的权限644
        可以上传文件,且文件的所属者是anonuser
        可以创建目录
        可以删除文件或者删除目录
        修改匿名用户的默认目录
        修改匿名用户默认使用的登录从ftp修改为myftp

步骤
1、编辑配置文件/etc/vsftpd/vsftpd.conf 添加如下内容

[root@localhost vsftpd]# vim vsftpd.conf 
# Example config file /etc/vsftpd/vsftpd.conf
# 允许匿名用户登录
anonymous_enable=YES
#创建文件的权限是: 666 - 022 = 644
anon_umask=022
#允许匿名用户上传
anon_upload_enable=YES
#匿名用户上传文件的用户为anonuser
chown_uploads=YES
chown_username=anonuser
# #允许匿名用户创建目录
anon_mkdir_write_enable=YES
#允许匿名的其他写的权限: 删除文件
anon_other_write_enable=YES
#

2、重启服务

[root@localhost vsftpd]# systemctl restart vsftpd

3、结果

C:\Users\Administrator>ftp 192.168.10.100
连接到 192.168.10.100。
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.10.100:(none)): ftp
331 Please specify the password.
密码:
230 Login successful.
ftp>

b.本地用户:

可以登录,可以上传和下载文件,可以创建目录,删除目录,删除文件
  有三个本地用户:ftpuser1, ftpuser2, ftpuser3
  允许ftpuser1 切出目录, 不允许其他用户切出目录
  设置不允许ftpuser2登录的两种方式:
  第一种在ftpusers中设置
  第二种在user_list中设置

chroot_list_enable=YESchroot_list_enable=NO
chroot_local_user=YES在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未列出的用户被限制在自己的主目录内所有的用户都无法切换到其他目录
chroot_local_user=NO在/etc/vsftpd/chroot_list文件中列出的用户被限制在自己的主目录内;未列出的用户可以切换到其他目录。所有的用户都可以切换到其他目录(默认状态)

步骤
1、编辑配置文件/etc/vsftpd/vsftpd.conf 添加如下内容

[root@localhost vsftpd]# vim vsftpd.conf 
#允许本地用户登录(Linux中的用户)
local_enable=YES
#写权限
write_enable=YES
#权限掩码
local_umask=022

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

2、添加用户

[root@localhost vsftpd]# useradd ftpuser1
[root@localhost vsftpd]# useradd ftpuser2
[root@localhost vsftpd]# useradd ftpuser3
[root@localhost vsftpd]# echo "123456" | passwd --stdin ftpuser1
Changing password for user ftpuser1.
passwd: all authentication tokens updated successfully.
[root@localhost vsftpd]# echo "123456" | passwd --stdin ftpuser2
Changing password for user ftpuser2.
passwd: all authentication tokens updated successfully.
[root@localhost vsftpd]# echo "123456" | passwd --stdin ftpuser3
Changing password for user ftpuser3.
passwd: all authentication tokens updated successfully.
[root@localhost vsftpd]# 

3、向文件添加内容

[root@localhost vsftpd]# vim chroot_list 
ftpuser1
~                                                                                                                                             
"chroot_list" 1L, 9C written                 
[root@localhost vsftpd]# vim user_list 
# 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
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
ftpuser2
                                                                  
~                                                                        
"user_list" 21L, 370C written                
[root@localhost vsftpd]# vim ftpusers 
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
ftpuser2
                                                                       
~         

4、重启服务

[root@localhost vsftpd]# systemctl restart vsftpd

5、结果

C:\Users\Administrator>ftp 192.168.10.100
连接到 192.168.10.100。
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.10.100:(none)): ftpuser1
331 Please specify the password.
密码:
230 Login successful.
ftp> mkdir ftp
257 "/home/ftpuser1/ftp" created
ftp> cd /
250 Directory successfully changed.
ftp> delete ftp

C:\Users\Administrator>ftp 192.168.10.100
连接到 192.168.10.100。
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.10.100:(none)): ftpuser2
530 Permission denied.
登录失败。
ftp>

c. 虚拟用户:
新建两个虚拟用户 vuser1, vuser2将其映射到ftpuser上
实现可以登录,可以上传,可以下载

1、编辑配置文件/etc/vsftpd/vsftpd.conf 添加如下内容

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
guest_enable=YES
#映射到真实用户ftuser3
guest_username=ftpuser3
virtual_use_local_privs=YES 
#认证文件名
pam_service_name=virtualftp

2、创建虚拟用户文件vuser并将虚拟用户文件转换成数据库文件

#奇数行虚拟用户名,偶数行为密码
[root@localhost vsftpd]# vim vuser
vuser1
123456
vuser2
123456
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db

3、创建/etc/pam.d/virtualftp文件,并添加内容

[root@localhost pam.d]# vim virtualftp 
#第一列:使用的模块:
#第二列:控制标记
#第三列:模块路径
#第四列:模块参数
#auth:用来对用户的身份进行识别.如:提示用户输入密码,或判断用户是否为root等
#account: 对帐号的各项属性进行检查.如:是否允许登录,是否达到最大用户数,或是root用户是否允许在这个终端登录等
#required: 一票否决,表示只有返回成功才能通过
#pam_userdb.so: 指定使用的模块
#db: 传入的模块参数: 注意,不用写带的.db的后缀名,只需要写文件名即可
#    因为会自动在文件后加上.db
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

5、重启服务并测试

[root@localhost vsftpd]#  systemctl stop firewalld

在cmd中登录
C:\Users\Administrator>ftp 192.168.10.100
连接到 192.168.10.100。
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.10.100:(none)): vuser1
331 Please specify the password.
密码:
230 Login successful.
ftp> 

常见错误

C:\Users\Administrator>ftp 192.168.10.100
连接到 192.168.10.100。
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.10.100:(none)): vuser1
331 Please specify the password.
密码:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()  
远程主机关闭连接

#改ftpuser3权限
[root@localhost home]# chmod u-w ftpuser3



标签:ftp,用户,192.168,vsftpd,实验,Linux,root,localhost
来源: https://blog.csdn.net/weixin_53049621/article/details/122586418

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有