复习之vsftp服务

news/2024/5/2 7:25:10/文章来源:https://blog.csdn.net/weixin_45267059/article/details/132045151

一、vsftp服务简介

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

Vsftpd是linux类操作系统上运行的ftp服务器软件。

vsftpd基本信息如下:

服务名称:   vsftpd.service
配置目录:   /etc/vsftpd
主配置文件:  /etc/vsftpd/vsftpd.conf
默认发布目录:  /var/ftp
报错信息:
550 : 程序本身拒绝
553 :文件系统权限限制
500 :权限过大
530 :认证失败

二、vsftpd的安装及启用

在虚拟机westosa上进行操作实验,安装的前提:

  • 配置好网络
  • 配置好软件仓库
  • 修改主机名为ftp
  • 关闭火墙

[root@ftp ~]# systemctl disable --now firewalld
[root@ftp ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor >Active: inactive (dead)Docs: man:firewalld(1)

 直接在仓库安装vsftpd服务即可!安装后并开启服务

[root@ftp ~]# dnf install -y vsftpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream                                       1.4 MB/s | 3.2 kB     00:00    
BaseOS                                          1.1 MB/s | 2.8 kB     00:00    
Dependencies resolved.
================================================================================Package         Architecture    Version               Repository          Size
================================================================================
Installing:vsftpd          x86_64          3.0.3-31.el8          AppStream          180 kTransaction Summary
================================================================================
Install  1 PackageTotal download size: 180 k
Installed size: 343 k
Downloading Packages:
vsftpd-3.0.3-31.el8.x86_64.rpm                   30 MB/s | 180 kB     00:00    
--------------------------------------------------------------------------------
Total                                            18 MB/s | 180 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                        1/1 Installing       : vsftpd-3.0.3-31.el8.x86_64                             1/1 Running scriptlet: vsftpd-3.0.3-31.el8.x86_64                             1/1 Verifying        : vsftpd-3.0.3-31.el8.x86_64                             1/1 
Installed products updated.Installed:vsftpd-3.0.3-31.el8.x86_64                                                    Complete!
[root@ftp ~]# systemctl enable --now vsftpd
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.

此时访问需要登陆

终端也可以利用lftp测试,报错530

三、lftp的使用方法

在终端也可进行登陆ftp,安装  lftp 可!

  • lftp  + ip  : 匿名登陆
  • lftp + ip + -u +用户名  :用户登陆
  • quit 退出
[root@ftp ~]# dnf install -y lftp
Updating Subscription Management repositories.
Unable to read consumer identity

安装后在终端输入 ftp  172.25.254.100即可查看ftp界面!也是匿名登陆!

ps:只有ls出来才算登陆ftp界面!

注意:匿名登陆下,不能上传文件!

 lftp 用户登陆:可以上传文件+下载文件

四、匿名用户访问控制

实验开始前保证

  • 关闭selinux
  • 关闭火墙
  • 开启vsftpd服务

1. 登陆控制

  • anonymous_enable=YES / NO: 匿名用户是否可以登陆

如果想匿名用户也可以访问ftp界面,需要修改ftp主配置文件,修改完成别忘了重启服务!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 

 修改完成后再次测试,匿名用户也可登陆ftp!

显示的是默认发布目录,/var/ftp下的!

在终端测试,显示匿名用户也可登陆!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxr-xr-x    2 0        0               6 Feb 17  2020 pub
lftp 172.25.254.100:/> quit

2. 家目录控制

vsftpd默认家目录是/var/ftp,可以在主配置文件修改家目录

  • anon_root=/westos

首先建立新目录,作为家目录

[root@ftp ~]# ll /var/ftp/
total 0
drwxr-xr-x 2 root root 6 Feb 17  2020 pub
[root@ftp ~]# mkdir /westos
[root@ftp ~]# touch /westos/westosfile{1..10}

在新目录中建立10个文件,如果访问vsftp可以看见10个文件,

说明该目录更改为了vsftp的家目录

在配置文件中添加:anon_root=/westos

[root@ftp ~]# cat /etc/vsftpd/vsftpd.conf 
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
anon_root=/westos
# Uncomment this to allow local users to log in.

然后重启服务,访问vsftp,发现10个文件存在!说明家目录已更改!

[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile1
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile10
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile2
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile3
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile4
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile5
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile6
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile7
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile8
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile9
lftp 172.25.254.100:/> 

注释掉即可还原!

3.上传控制

  • anon_upload_enable=YES|NO
  • 修改默认发布目录的子目录权限

当匿名用户上传文件时,默认不允许上传!

ps:只能在发布目录的子目录上传文件!不能在发布目录上传文件!

[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxr-xr-x    2 0        0               6 Feb 17  2020 pub
lftp 172.25.254.100:/> cd /pub/
lftp 172.25.254.100:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.100:/pub> 

此时报错550,意思是程序本身不允许上传,修改主配置文件!然后重启服务!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 

 再次上传文件,报错553,意思是权限控制!

[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxr-xr-x    2 0        0               6 Feb 17  2020 pub
lftp 172.25.254.100:/> cd /pub/
lftp 172.25.254.100:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 553 Could not create file. (passwd)
lftp 172.25.254.100:/pub> quit
[root@ftp ~]# 

查看默认发布目录的子目录权限,发现只有root可以写。

因此要修改该目录权限

[root@ftp ~]# ll -ld /var/ftp/pub/
drwxr-xr-x 2 root root 6 Feb 17  2020 /var/ftp/pub/
[root@ftp ~]# id ftp 
uid=14(ftp) gid=50(ftp) groups=50(ftp)
[root@ftp ~]# chgrp ftp /var/ftp/pub/
[root@ftp ~]# chmod 775 /var/ftp/pub/
[root@ftp ~]# ll -ld /var/ftp/pub/
drwxrwxr-x 2 root ftp 6 Feb 17  2020 /var/ftp/pub/

再次测试匿名上传文件!成功上传!

[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    2 0        50              6 Feb 17  2020 pub
lftp 172.25.254.100:/> cd /pub/
lftp 172.25.254.100:/pub> put /etc/passwd
2761 bytes transferred
lftp 172.25.254.100:/pub> quit

4.建立目录控制

  • anon_mkdir_write_enable=YES|NO

默认情况,匿名用户无法建立目录!

[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    2 0        50             20 Aug 01 11:22 pub
lftp 172.25.254.100:/> cd /pub/
lftp 172.25.254.100:/pub> mkdir westos
mkdir: Access failed: 550 Permission denied. (westos)
lftp 172.25.254.100:/pub> quit

只需要修改主配置文件,重启服务!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    2 0        50             20 Aug 01 11:22 pub
lftp 172.25.254.100:/> cd /pub/
lftp 172.25.254.100:/pub> mkdir westos
mkdir ok, `westos' created
lftp 172.25.254.100:/pub> ls
-rw-------    1 14       50           2761 Aug 01 11:22 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> quit

 就能建立目录!!!

5. 下载控制

  • anon_world_readable_only=NO  :可以下载

默认情况下,匿名用户无法下载文件

[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    3 0        50             34 Aug 01 11:30 pub
lftp 172.25.254.100:/> cd pub/
lftp 172.25.254.100:/pub> ls
-rw-------    1 14       50           2761 Aug 01 11:22 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> get passwd 
get: Access failed: 550 Failed to open file. (passwd)
lftp 172.25.254.100:/pub> quit

修改配置文件,添加下载控制即可!ps:该控制配置文件中没有

可以man  5  vsftpd.service 查找

 找到后添加该控制!

 添加成功,重启服务,即可下载文件成功!

[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    3 0        50             34 Aug 01 11:30 pub
lftp 172.25.254.100:/> cd pub/
lftp 172.25.254.100:/pub> ls
-rw-------    1 14       50           2761 Aug 01 11:22 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> get passwd 
2761 bytes transferred
lftp 172.25.254.100:/pub> quit

6.. 删除控制

  • anon_other_write_enable=YES

默认情况下,匿名用户无法删除文件

[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    3 0        50             34 Aug 01 11:30 pub
lftp 172.25.254.100:/> cd pub/
lftp 172.25.254.100:/pub> ls
-rw-------    1 14       50           2761 Aug 01 11:22 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> rm passwd 
rm: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.100:/pub> quit 

同理查找删除控制的服务

 添加删除控制在主配置文件!

 配置成功重启服务,再次测试,可以删除文件!

[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    3 0        50             34 Aug 01 11:30 pub
lftp 172.25.254.100:/> cd pub/
lftp 172.25.254.100:/pub> ls
-rw-------    1 14       50           2761 Aug 01 11:22 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> rm passwd 
rm ok, `passwd' removed
lftp 172.25.254.100:/pub> ls
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> quit

7. 上传文件权限设定

  • anon_umask=022 : 目录权限是777-022=755,文件权限是755-111=644.

匿名用户上传文件时,默认权限是600

如果想更改权限,在配置文件中修改即可!

 再次上传文件,文件权限已更改!

 8. 上传文件的用户身份设定

  • chown_upload=YES
    chown_username=westos
    chown_upload_mode=0644

默认下,匿名用户上传文件的用户是ftp

 如果想设定用户身份,可以修改配置文件!

注意:在设定用户身份后,想要修改权限,只能通过 chown_upload_mode=0644  (权限多少就写多少,不是预留权限)设定,不能通过 non_umask=022 设定!

 设定完成后重启服务,再次上传文件测试,发现用户身份和权限都已经设定!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~> ls
drwxrwxr-x    3 0        50             34 Aug 02 05:01 pub
lftp 172.25.254.100:/> cd pub/
lftp 172.25.254.100:/pub> ls
--w----r--    1 1000     50           2761 Aug 02 05:01 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> rm passwd 
rm ok, `passwd' removed
lftp 172.25.254.100:/pub> ls
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> put /etc/passwd
2761 bytes transferred
lftp 172.25.254.100:/pub> ls
-rw-r--r--    1 1000     50           2761 Aug 02 05:02 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> quit
[root@ftp ~]# id westos 
uid=1000(westos) gid=1000(westos) groups=1000(westos),10(wheel)

9. 登陆数量控制

  • max_clients=2

默认情况下,登陆ftp的终端没有限制

在配置文件中设定登陆数量为2

 测试,当登陆第3个ftp时,无法登录。。。。

 此时,退出一个,则第3个顺利登陆!

 将登陆数量注释,则又可以无限制的登陆!

10.上传速率控制

  • anon_max_rate=102400 :设定速率大小为100k

首先建立一个大文件,为了实验效果,上传该文件,默认情况下上传速度还是挺快的!

<pre>[root@ftp ~]# dd if=/dev/zero of=/mnt/bigfile bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 0.222185 s, 2.4 GB/s
[root@ftp ~]# lftp 172.25.254.100
lftp 172.25.254.100:~&gt; ls
drwxrwxr-x    3 0        50             34 Aug 02 05:02 <font color="#0087FF">pub</font>
lftp 172.25.254.100:/&gt; cd pub/
lftp 172.25.254.100:/pub&gt; ls
-rw-r--r--    1 1000     50           2761 Aug 02 05:02 passwd
drwx------    2 14       50              6 Aug 01 11:30 <font color="#0087FF">westos</font>
lftp 172.25.254.100:/pub&gt; put /mnt/bigfile 
524288000 bytes transferred                     
lftp 172.25.254.100:/pub&gt; quit
[root@ftp ~]# </pre>

在配置文件中,设定文件上传速率为100k

 再次上传该文件,发现速率很慢!

 五、本地用户访问控制

1. 登陆控制

  • local_enable=NO|YES :默认开启
  • lftp 172.25.254.100 -u westos : 登陆形式

新建一个本地用户hgx,用户hgx和westos登陆ftp,默认登陆成功!

[root@ftp ~]# useradd hgx
[root@ftp ~]# echo westos | passwd --stdin hgx
Changing password for user hgx.
passwd: all authentication tokens updated successfully.
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:~> quit
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls
lftp hgx@172.25.254.100:~> quit

在配置文件中修改登陆控制,设定不允许本地用户登陆!

 保存后重启服务,再次用本地用户登陆,发现无法登录!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
ls: Login failed: 530 This FTP server is anonymous only.
lftp hgx@172.25.254.100:~> quit
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
ls: Login failed: 530 This FTP server is anonymous only.
lftp westos@172.25.254.100:~> quit

2. 家目录控制

  • local_root=/westos : 设定家目录为/westos
  • /home/westos : 默认家目录
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:~> quit

在配置文件中设定本地用户的默认家目录

 再次登陆本地用户,查看家目录,家目录已经变成/westos

<pre>[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~&gt; ls                   
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile1
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile10
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile2
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile3
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile4
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile5
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile6
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile7
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile8
-rw-r--r--    1 0        0               0 Aug 01 10:59 westosfile9
lftp westos@172.25.254.100:~&gt; quit
</pre>

3. 写权限控制

  • write_enable=NO|YES : 默认开启

默认情况下,本地用户的写权限是开启的,可以上传文件,可以删除文件

<pre>[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~&gt; ls                      
lftp hgx@172.25.254.100:~&gt; put /etc/passwd
2798 bytes transferred
lftp hgx@172.25.254.100:~&gt; ls
-rw-r--r--    1 1001     1001         2798 Aug 02 06:37 passwd
lftp hgx@172.25.254.100:~&gt; rm passwd 
rm ok, `passwd&apos; removed
lftp hgx@172.25.254.100:~&gt; quit
</pre>

在配置文件中设定写权限为NO

测试,本地用户上传文件失败!!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp hgx@172.25.254.100:~> quit

注意:此时匿名用户也无法上传和删除文件!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp hgx@172.25.254.100:~> quit
[root@ftp ~]# lftp 172.25.254.100 
lftp 172.25.254.100:~> ls
drwxrwxr-x    3 0        50             49 Aug 02 05:51 pub
lftp 172.25.254.100:/> cd pub/
lftp 172.25.254.100:/pub> ls
-rw-r--r--    1 1000     50       16043547 Aug 02 05:53 bigfile
-rw-r--r--    1 1000     50           2761 Aug 02 05:02 passwd
drwx------    2 14       50              6 Aug 01 11:30 westos
lftp 172.25.254.100:/pub> rm passwd 
rm: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.100:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp 172.25.254.100:/pub> quit

4. 上传文件权限控制

  • local_umask=077 : 保留权限为077,目录权限为700,文件权限为600

本地用户上传文件默认权限是644

 在主配置文件中设定上传文件权限为600,则保留权限是077

 测试,上传新文件,该文件权限为600

 将权限修改回以前,再次上传新文件,发现权限又变回644

删除上传的文件,ps: 不能用rm -fr  / rm  *  。 只能rm  + 名字~!

[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
-rw-------    1 1001     1001         1032 Aug 02 06:56 group
-rw-r--r--    1 1001     1001          490 Aug 02 06:57 inittab
-rw-r--r--    1 1001     1001         2798 Aug 02 06:53 passwd
lftp hgx@172.25.254.100:~> rm -fr *
lftp hgx@172.25.254.100:~> ls
-rw-------    1 1001     1001         1032 Aug 02 06:56 group
-rw-r--r--    1 1001     1001          490 Aug 02 06:57 inittab
-rw-r--r--    1 1001     1001         2798 Aug 02 06:53 passwd
lftp hgx@172.25.254.100:~> rm *
rm: Access failed: 550 Delete operation failed. (*)
lftp hgx@172.25.254.100:~> ls
-rw-------    1 1001     1001         1032 Aug 02 06:56 group
-rw-r--r--    1 1001     1001          490 Aug 02 06:57 inittab
-rw-r--r--    1 1001     1001         2798 Aug 02 06:53 passwd
lftp hgx@172.25.254.100:~> rm group passwd inittab 
rm ok, 3 files removed
lftp hgx@172.25.254.100:~> ls
lftp hgx@172.25.254.100:~> quit

5. 用户登陆黑白名单

  • /etc/vsftpd/ftpusers :永久黑名单,名单内的用户不能登陆
  • /etc/vsftpd/user_list:默认黑名单,默认情况下是黑名单。但是在配置文件中添加userlist_deny=NO 时该名单变成了白名单。

默认情况下,hgx用户可以登陆,但是把该用户写入永久黑名单 /etc/vsftpd/ftpusers后,无法登录!

ps:黑白名单不用重启服务,可以立即生效!

[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> quit
[root@ftp ~]# vim /etc/vsftpd/ftpusers 
[root@ftp ~]# cat /etc/vsftpd/ftpusers 
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
hgx
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
ls: Login failed: 530 Login incorrect.          
lftp hgx@172.25.254.100:~> 
lftp hgx@172.25.254.100:~> quit

同时,westos用户可以正常登陆!

[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:~> quit

把用户hgx从永久黑名单中删除后,该用户hgx又可以登陆!

默认情况,该文件也是 /etc/vsftpd/user_list 黑名单,名单内的用户无法登录!

如下图,westos用户无法登录,hgx用户正常登陆,因为westos用户在默认黑名单内!

[root@ftp ~]# cat /etc/vsftpd/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
westos
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
ls: Login failed: 530 Permission denied.          
lftp westos@172.25.254.100:~> quit
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> quit

进入默认黑名单,发现 在配置文件添加 userlist_deny=NO 默认黑名单变成白名单,只有该名单内的用户可以登陆!

 进入配置文件,添加参数,把默认黑名单改成白名单!

 修改成功后重启服务,再次测试!发现westos用户可以登陆,反而hgx用户无法登录!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
ls: Login failed: 530 Permission denied.          
lftp hgx@172.25.254.100:~> quit
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:~> wuit
Unknown command `wuit'.
lftp westos@172.25.254.100:~> quit

想恢复默认设置,只需要在配置文件中删除userlist_deny=NO 即可!同时将westos用户从默认黑名单中删除!再次登陆,两个用户都可以登陆!

[root@ftp ~]# vim /etc/vsftpd/user_list 
[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:~> quit
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> quit

6. 锁定用户到自己的家目录

  • chroot_local_user=YES
  • chmod u-w /home/* :锁定用户到家目录必须去除写权限,否则无法登录!

默认情况下,用户登陆可以进入根目录

[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> cd /
cd ok, cwd=/
lftp hgx@172.25.254.100:/> ls
lrwxrwxrwx    1 0        0               7 Aug 12  2018 bin -> usr/bin
dr-xr-xr-x    5 0        0            4096 Aug 01 06:21 boot
drwxr-xr-x   21 0        0            3300 Aug 02 03:49 dev
drwxr-xr-x  140 0        0            8192 Aug 02 05:58 etc
drwxr-xr-x    4 0        0              31 Aug 02 05:58 home
lrwxrwxrwx    1 0        0               7 Aug 12  2018 lib -> usr/lib
lrwxrwxrwx    1 0        0               9 Aug 12  2018 lib64 -> usr/lib64
drwxr-xr-x    2 0        0               6 Aug 12  2018 media
drwxr-xr-x    2 0        0              21 Aug 02 05:48 mnt
drwxr-xr-x    2 0        0               6 Aug 12  2018 opt
dr-xr-xr-x  209 0        0               0 Aug 02 03:49 proc
dr-xr-x---   15 0        0            4096 Aug 02 08:51 root
drwxr-xr-x   40 0        0            1220 Aug 02 03:49 run
lrwxrwxrwx    1 0        0               8 Aug 12  2018 sbin -> usr/sbin
drwxr-xr-x    2 0        0               6 Aug 12  2018 srv
dr-xr-xr-x   13 0        0               0 Aug 02 03:49 sys
drwxrwxrwt   17 0        0            4096 Aug 02 06:59 tmp
drwxr-xr-x   12 0        0             144 Jul 30 06:09 usr
drwxr-xr-x   22 0        0            4096 Jul 30 12:48 var
drwxr-xr-x    2 0        0             197 Aug 01 10:59 westos

比较危险,因此可以设定锁定用户到自己的家目录,则不能随便访问其他目录!

在主配置文件chroot_local_user=YES,同时去除主目录的写权限!

 本地用户登陆成功,且被锁定在自己的家目录中!

7.锁定用户到自己的家目录--白名单

  • chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
      : 在名单内的用户没有被锁定

上节实验,本地用户全部都锁定在自己的家目录中,可以设定白名单!

让westos用户被锁定,hgx用户不被锁定!

首先在配置文件中 设定

 由于白名单不存在,所以要新建白名单!将用户hgx写进该白名单!

[root@ftp ~]# cat /etc/vsftpd/chroot_list 
hgx
[root@ftp ~]# 

重启服务后进行测试,发现hgx用户没有被锁定!westos用户被锁定!

[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:/> cd /
lftp westos@172.25.254.100:/> ls
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:/> quit
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:~> cd /
cd ok, cwd=/
lftp hgx@172.25.254.100:/> ls
lrwxrwxrwx    1 0        0               7 Aug 12  2018 bin -> usr/bin
dr-xr-xr-x    5 0        0            4096 Aug 01 06:21 boot
drwxr-xr-x   21 0        0            3300 Aug 02 03:49 dev
drwxr-xr-x  140 0        0            8192 Aug 02 05:58 etc
drwxr-xr-x    4 0        0              31 Aug 02 05:58 home
lrwxrwxrwx    1 0        0               7 Aug 12  2018 lib -> usr/lib
lrwxrwxrwx    1 0        0               9 Aug 12  2018 lib64 -> usr/lib64
drwxr-xr-x    2 0        0               6 Aug 12  2018 media
drwxr-xr-x    2 0        0              21 Aug 02 05:48 mnt
drwxr-xr-x    2 0        0               6 Aug 12  2018 opt
dr-xr-xr-x  209 0        0               0 Aug 02 03:49 proc
dr-xr-x---   15 0        0            4096 Aug 02 09:36 root
drwxr-xr-x   40 0        0            1220 Aug 02 03:49 run
lrwxrwxrwx    1 0        0               8 Aug 12  2018 sbin -> usr/sbin
drwxr-xr-x    2 0        0               6 Aug 12  2018 srv
dr-xr-xr-x   13 0        0               0 Aug 02 03:49 sys
drwxrwxrwt   17 0        0            4096 Aug 02 09:36 tmp
drwxr-xr-x   12 0        0             144 Jul 30 06:09 usr
drwxr-xr-x   22 0        0            4096 Jul 30 12:48 var
drwxr-xr-x    2 0        0             197 Aug 01 10:59 westos
lftp hgx@172.25.254.100:/> quit

8. 锁定用户到自己的家目录--黑名单

  • chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list :此时改名为黑名单!名单内的用户被锁定!

设置主配置文件,设定黑名单!

重启服务,黑名单中只有hgx用户,测试hgx和westos用户,发现hgx用户被锁定!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# cat /etc/vsftpd/chroot_list 
hgx
[root@ftp ~]# lftp 172.25.254.100 -u hgx
Password: 
lftp hgx@172.25.254.100:~> ls                      
lftp hgx@172.25.254.100:/> cd /  
lftp hgx@172.25.254.100:/> ls
lftp hgx@172.25.254.100:/> quit
[root@ftp ~]# lftp 172.25.254.100 -u westos
Password: 
lftp westos@172.25.254.100:~> ls                   
-rw-r--r--    1 1000     1000         2761 Aug 01 10:01 passwd
lftp westos@172.25.254.100:~> cd /
cd ok, cwd=/
lftp westos@172.25.254.100:/> ls
lrwxrwxrwx    1 0        0               7 Aug 12  2018 bin -> usr/bin
dr-xr-xr-x    5 0        0            4096 Aug 01 06:21 boot
drwxr-xr-x   21 0        0            3300 Aug 02 03:49 dev
drwxr-xr-x  140 0        0            8192 Aug 02 05:58 etc
drwxr-xr-x    4 0        0              31 Aug 02 05:58 home
lrwxrwxrwx    1 0        0               7 Aug 12  2018 lib -> usr/lib
lrwxrwxrwx    1 0        0               9 Aug 12  2018 lib64 -> usr/lib64
drwxr-xr-x    2 0        0               6 Aug 12  2018 media
drwxr-xr-x    2 0        0              21 Aug 02 05:48 mnt
drwxr-xr-x    2 0        0               6 Aug 12  2018 opt
dr-xr-xr-x  209 0        0               0 Aug 02 03:49 proc
dr-xr-x---   15 0        0            4096 Aug 02 09:51 root
drwxr-xr-x   40 0        0            1220 Aug 02 03:49 run
lrwxrwxrwx    1 0        0               8 Aug 12  2018 sbin -> usr/sbin
drwxr-xr-x    2 0        0               6 Aug 12  2018 srv
dr-xr-xr-x   13 0        0               0 Aug 02 03:49 sys
drwxrwxrwt   17 0        0            4096 Aug 02 09:46 tmp
drwxr-xr-x   12 0        0             144 Jul 30 06:09 usr
drwxr-xr-x   22 0        0            4096 Jul 30 12:48 var
drwxr-xr-x    2 0        0             197 Aug 01 10:59 westos
lftp westos@172.25.254.100:/> quit

六、虚拟用户访问

以上实验用户都是真实存在的,这样服务器的安全性很差,因此可以建立虚拟用户访问ftp!

1. 建立虚拟用户

  • 建立认证文件模板:一行用户名一行密码
  • 加密认证文件
  • 建立认证策略文件
  • 配置文件开启虚拟用户功能

新建认证文件:/etc/vsftpd/westos :名字任意!

加密认文件

[root@ftp ~]# cat /etc/vsftpd/westos
user1
123
user2
123
[root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db
[root@ftp ~]# cd /etc/vsftpd
[root@ftp vsftpd]# ls
chroot_list  user_list    vsftpd_conf_migrate.sh  westos.db
ftpusers     vsftpd.conf  westos

建立认证策略文件

[root@ftp vsftpd]# vi /etc/pam.d/westos
[root@ftp vsftpd]# cat /etc/pam.d/westos
account    required   pam_userdb.so    db=/etc/vsftpd/westos
auth       required   pam_userdb.so    db=/etc/vsftpd/westos

编辑配置文件,开启虚拟功能!指定认证策略文件!

 设定完成,重启服务!测试虚拟用户usera user2是否可以登陆ftp

 虚拟用户成功登陆ftp,但是家目录与匿名用户的一样!可以建立虚拟用户自己的家目录!

2. 虚拟用户家目录的设定

  • local_root=/ftpuserdir/$USER  :设定虚拟用户的家目录
    user_sub_token=$USER

首先建立虚拟用的家目录,名字与用户名一致!

[root@ftp ~]# ls -lR /ftphomedir/
/ftphomedir/:
total 0
drwxr-xr-x 3 root root 34 Aug  2 19:06 user1
drwxr-xr-x 3 root root 34 Aug  2 19:06 user2/ftphomedir/user1:
total 0
drwxr-xr-x 2 root root 6 Aug  2 19:06 pub
-rw-r--r-- 1 root root 0 Aug  2 19:03 user1file/ftphomedir/user1/pub:
total 0/ftphomedir/user2:
total 0
drwxr-xr-x 2 root root 6 Aug  2 19:06 pub
-rw-r--r-- 1 root root 0 Aug  2 19:03 user2file/ftphomedir/user2/pub:
total 0

在配置文件中设定虚拟用户的家目录!

 设定成功后,重启服务,测试,登陆匿名用户!

登陆user1就在user1的家目录,user2就在user2的家目录!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u user1
Password: 
lftp user1@172.25.254.100:~> ls                    
drwxr-xr-x    2 0        0               6 Aug 02 11:06 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user1file
lftp user1@172.25.254.100:/> quit
[root@ftp ~]# lftp 172.25.254.100 -u user2
Password: 
lftp user2@172.25.254.100:~> ls                    
drwxr-xr-x    2 0        0               6 Aug 02 11:06 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user2file
lftp user2@172.25.254.100:/> quit

3. 用户配置独立设定

  • user_config_dir=/etc/vsftpd/user_conf : 主配置文件中添加
  • mkdir  /etc/vsftpd/user_conf  : 新建独立目录
  • vim  /etc/vsftpd/user_conf/user1 : 独立目录下新建与用户名相同的文件,并且写入配置!则单独生效!

虚拟用户userq user2用的都是默认配置文件,则上传,删除文件功能是一致的!

首先修改目录的权限+所有组!!此时,所有的虚拟用户都可以上传文件+删除文件!

[root@ftp ~]# ls -ld /ftphomedir/user{1..2}
drwxr-xr-x 3 root root 34 Aug  2 19:06 /ftphomedir/user1
drwxr-xr-x 3 root root 34 Aug  2 19:06 /ftphomedir/user2
[root@ftp ~]# chmod 775 /ftphomedir/user{1..2}/pub
[root@ftp ~]# chgrp ftp /ftphomedir/user{1..2}/pub
[root@ftp ~]# ls -ld /ftphomedir/user{1..2}/pub
drwxrwxr-x 2 root ftp 6 Aug  2 19:06 /ftphomedir/user1/pub
drwxrwxr-x 2 root ftp 6 Aug  2 19:06 /ftphomedir/user2/pub
[root@ftp ~]# lftp 172.25.254.100 -u user1
Password: 
lftp user1@172.25.254.100:~> ls                    
drwxrwxr-x    2 0        50              6 Aug 02 11:06 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user1file
lftp user1@172.25.254.100:/> cd pub/
lftp user1@172.25.254.100:/pub> ls
lftp user1@172.25.254.100:/pub> put /etc/passwd
2798 bytes transferred
lftp user1@172.25.254.100:/pub> ls 
-rw-r--r--    1 1000     50           2798 Aug 02 11:31 passwd
lftp user1@172.25.254.100:/pub> rm passwd 
rm ok, `passwd' removed
lftp user1@172.25.254.100:/pub> ls
lftp user1@172.25.254.100:/pub> quit
[root@ftp ~]# lftp 172.25.254.100 -u user2
Password: 
lftp user2@172.25.254.100:~> ls                    
drwxrwxr-x    2 0        50              6 Aug 02 11:06 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user2file
lftp user2@172.25.254.100:/> cd pub/
lftp user2@172.25.254.100:/pub> ls
lftp user2@172.25.254.100:/pub> put /etc/passwd
2798 bytes transferred
lftp user2@172.25.254.100:/pub> ls
-rw-r--r--    1 1000     50           2798 Aug 02 11:31 passwd
lftp user2@172.25.254.100:/pub> rm passwd 
rm ok, `passwd' removed
lftp user2@172.25.254.100:/pub> ls 
lftp user2@172.25.254.100:/pub> quit

修改默认配置文件,关闭上传+删除文件设定!此时虚拟用户都无法上传+删除文件!

重启服务后,设定生效!

[root@ftp ~]# vim /etc/vsftpd/vsftpd.conf 
[root@ftp ~]# systemctl restart vsftpd.service 
[root@ftp ~]# lftp 172.25.254.100 -u user1
Password: 
lftp user1@172.25.254.100:~> ls                    
drwxrwxr-x    2 0        50              6 Aug 02 11:31 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user1file
lftp user1@172.25.254.100:/> cd pub/
lftp user1@172.25.254.100:/pub> ls
lftp user1@172.25.254.100:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp user1@172.25.254.100:/pub> quit
[root@ftp ~]# lftp 172.25.254.100 -u user2
Password: 
lftp user2@172.25.254.100:~> ls                    
drwxrwxr-x    2 0        50              6 Aug 02 11:31 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user2file
lftp user2@172.25.254.100:/> cd pub/
lftp user2@172.25.254.100:/pub> ls
lftp user2@172.25.254.100:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp user2@172.25.254.100:/pub> quit

如果想要实现user1 可以上传+删除文件,而user2不可以吗?需要建立独立配置文件!

首先在默认配置文件中添加独立目录---名字任意

 新建该目录,重启服务!

[root@ftp ~]# mkdir /etc/vsftpd/user_conf
[root@ftp ~]# systemctl restart vsftpd.service 

在该目录下新建与用户名同名的文件!并且写入允许上传的配置!

[root@ftp ~]# touch /etc/vsftpd/user_conf/user1
[root@ftp ~]# vim /etc/vsftpd/user_conf/user1
[root@ftp ~]# cat /etc/vsftpd/user_conf/user1
anon_upload_enable=YES
[root@ftp ~]# 

测试!!user1可以上传文件,user2不可以!因为user1使用的是独立配置,user2使用的是默认配置,而默认配置不允许上传文件!

[root@ftp ~]# lftp 172.25.254.100 -u user1
Password: 
lftp user1@172.25.254.100:~> ls                    
drwxrwxr-x    2 0        50              6 Aug 02 11:31 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user1file
lftp user1@172.25.254.100:/> cd pub/
lftp user1@172.25.254.100:/pub> ls
lftp user1@172.25.254.100:/pub> put /etc/passwd
2798 bytes transferred
lftp user1@172.25.254.100:/pub> ls 
-rw-r--r--    1 1000     50           2798 Aug 02 11:52 passwd
lftp user1@172.25.254.100:/pub> quit
[root@ftp ~]# lftp 172.25.254.100 -u user2
Password: 
lftp user2@172.25.254.100:~> ls                    
drwxrwxr-x    2 0        50              6 Aug 02 11:31 pub
-rw-r--r--    1 0        0               0 Aug 02 11:03 user2file
lftp user2@172.25.254.100:/> cd pub/
lftp user2@172.25.254.100:/pub> ls
lftp user2@172.25.254.100:/pub> put /etc/passwd
put: /etc/passwd: Access failed: 550 Permission denied. (passwd)
lftp user2@172.25.254.100:/pub> quit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_150442.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac电脑访问windows共享文件夹连接不上(设置445端口)

前提&#xff1a;首先需要保证mac和windows都在同一局域网内&#xff0c;如果不在肯定是连不上的&#xff0c;就不用往下看了。 事情是这样的&#xff0c;公司入职发了mac电脑&#xff0c;但是我是window重度用户&#xff0c;在折腾mac的过程中&#xff0c;有许多文件需要从wi…

运维作业4

一.简述静态网页和动态网页的区别。 静态页面资源特征 1. 处理文件类型&#xff1a;如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等 2. 地址中不含有问号"&#xff1f;"或&等特殊符号。 3. 保存在网站服务器文件系统上的&#xff0c;是实实在在保存在服务器…

【有趣的】关于Map的一些小测试

Map在代码中用到得非常多&#xff0c;它是无序的、key-value结构的&#xff0c;其读取会非常快。 今天看了个小文章Map判空 、空字符串、空key值等各种判断方法&#xff0c;你都掌握了吗&#xff1f;便自己也玩一下。 一、判空 因为对象已经new出来了&#xff0c;所以map指向的…

Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例

day02 day02配置告警用户数超过50&#xff0c;发送告警邮件实施验证告警配置配置钉钉机器人告警创建钉钉机器人编写脚本并测试添加报警媒介类型为用户添加报警媒介创建触发器创建动作验证自动发现配置自动发现主动监控配置web2使用主动监控修改配置文件&#xff0c;只使用主动…

汽车智能化再掀新热潮!「中央计算架构」进入规模量产周期

中央计算区域控制的新一代整车电子架构&#xff0c;已经成为车企继电动化、智能化&#xff08;功能上车&#xff09;之后&#xff0c;新一轮竞争的焦点。 如果说智能化的1.0阶段&#xff0c;是智能驾驶智能座舱的争夺战&#xff1b;那么&#xff0c;即将进入的2.0阶段&#xff…

爱尔眼科四川省区“同心博爱 光明工程”“西部健康公益行”炉霍站启动

8月1日&#xff0c;“同心博爱 光明工程”“西部健康公益行”炉霍站出征仪式在四川爱尔眼科医院隆重举行。 此次公益活动由民革成都市委会、中共锦江区委统战部指导&#xff0c;如意树爱心促进会主办&#xff0c;民革锦江区总支部、爱尔眼科四川省区支持&#xff0c;四川爱尔眼…

SCI论文的发文的模板(Elsevier,MDPI,IEEE)

不同的SCI期刊都有自己的出版商&#xff0c;不同的出版商有不同的发文格式。 最简单的方式就是去查官网上面&#xff0c;常用的期刊格式如下。到对应的位置下载模板即可&#xff0c;推荐使用latex。 MDPI MDPI | Preparing Manuscripts in LaTeX Elsevier Guide for authors …

【Linux指令篇】--- Linux常用指令汇总(克服指令繁杂问题)

文章目录 前言&#x1f31f;一、Linux基本指令&#x1f31f;二、ls指令&#x1f30f;2.1.语法&#xff1a;&#x1f30f;2.2.功能&#xff1a;&#x1f30f;2.3.常用选项&#xff1a; &#x1f31f;三、pwd指令&#x1f30f;3.1.语法&#xff1a;&#x1f30f;3.2.功能&#xf…

C++11 通用工具

通用工具 目录 pair和tuple智能指针数值极值type trait 和type utility辅助函数clock和timerbitset随机数 1 pair和Tuple 1.1 pair 头文件 #include<utility>pair定义 pair<string,string> author{James","joyce"};)] --> pair操作 1.2 tup…

100 个鲜为人知的 Python 高级技巧 0-20

100 鲜为人知的 Python 功能 这篇文章是为那些每天使用 Python&#xff0c;但从未真正坐下来通读所有文档的人准备的。 如果您已经使用 Python 多年&#xff0c;并且知道足够多的知识来完成工作&#xff0c;那么为了发现一些新技巧而通读几千页的文档可能不是明智之举。 因此&a…

【业务功能篇61】SpringBoot项目流水线 dependencyManagement 标签整改依赖包版本漏洞问题

业务场景&#xff1a;当前我们项目引入了公司自研的一些公共框架组件&#xff0c;比如SSO单点登录jar包&#xff0c;文件上传服务jar包等公共组件&#xff0c;开发新功能&#xff0c;本地验证好之后&#xff0c;部署流水线&#xff0c;报出一些jar包版本的整改漏洞问题&#xf…

变透明的黑匣子:UCLA 开发可解释神经网络 SNN 预测山体滑坡

内容一览&#xff1a;由于涉及到多种时空变化因素&#xff0c;山体滑坡预测一直以来都非常困难。深度神经网络 (DNN) 可以提高预测准确性&#xff0c;但其本身并不具备可解释性。本文中&#xff0c;UCLA 研究人员引入了 SNN。SNN 具有完全可解释性、高准确性、高泛化能力和低模…

Spring系列二:基于注解配置bean【建议收藏】

文章目录 &#x1f497;通过注解配置bean&#x1f35d;基本介绍&#x1f35d;快速入门&#x1f35d;注意事项和细节 &#x1f497;自己实现Spring注解配置Bean机制&#x1f35d;需求说明&#x1f35d;思路分析&#x1f35d;注意事项和细节 &#x1f497;自动装配 Autowired&…

P3373 【模板】线段树 2(乘法与加法)(内附封面)

【模板】线段树 2 题目描述 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面三种操作&#xff1a; 将某区间每一个数乘上 x x x&#xff1b;将某区间每一个数加上 x x x&#xff1b;求出某区间每一个数的和。 输入格式 第一行包含三个整数 n , q , m n,q,m n,…

Flexbox

Flexbox 一、什么是 Flexbox ?二、Flexbox 知识点2.1、Flex Container&#xff08;容器&#xff09;2.1.1、轴2.1.2、添加flex支持2.1.3、flex-direction&#xff08;主轴向&#xff09;2.1.3.1、row 横向2.1.3.2、row-reverse 横向翻转2.1.3.3、column 纵向2.1.3.4、column-r…

宇凡微2.4g遥控船开发方案,采用合封芯片

2.4GHz遥控船的开发方案是一个有趣且具有挑战性的项目。这样的遥控船可以通过无线2.4GHz频率进行远程控制&#xff0c;让用户在池塘或湖泊上畅游。以下是一个简要的2.4GHz遥控船开发方案&#xff1a; 基本构想如下 mcu驱动两个小电机&#xff0c;小电机上安装两个螺旋桨&#…

速通pytorch库

速通pytorch库&#xff08;长文&#xff09; 前言 ​ 本篇文章主要为那些对于pytorch库不熟悉、还没有上手的朋友们准备&#xff0c;梳理pytorch库的主要内容&#xff0c;帮助大家入门深度学习最重要的库之一。 目录结构 文章目录 速通pytorch库&#xff08;长文&#xff09;1.…

pytorch学习——正则化技术——丢弃法(dropout)

一、概念介绍 在多层感知机&#xff08;MLP&#xff09;中&#xff0c;丢弃法&#xff08;Dropout&#xff09;是一种常用的正则化技术&#xff0c;旨在防止过拟合。&#xff08;效果一般比前面的权重衰退好&#xff09; 在丢弃法中&#xff0c;随机选择一部分神经元并将其输出…

openGauss学习笔记-28 openGauss 高级数据管理-NULL值

文章目录 openGauss学习笔记-28 openGauss 高级数据管理-NULL值28.1 IS NOT NULL28.2 IS NULL openGauss学习笔记-28 openGauss 高级数据管理-NULL值 NULL值代表未知数据。无法比较NULL和0&#xff0c;因为它们是不等价的。 创建表时&#xff0c;可以指定列可以存放或者不能存…

利用尺度因子方法恢复GRACE水储量变化

1.背景 重力恢复与气候实验&#xff08;GRACE&#xff09;观测地球重力势的时间变化。在考虑了大气和海洋效应后&#xff0c;每月到年际尺度上剩余的信号主要与陆地水储存&#xff08;TWS&#xff09;的变化有关。水储存变化的估计受到测量误差和噪声的信号退化影响&#xff0…