保姆級講解 FTP服務器的搭建、配置與管理

本來目錄很長的 因為感覺不太美觀 所以小標題都刪掉了 本文介紹了

  1. 本地用戶的FTP服務器搭建實例
  2. 匿名用戶的FTP服務器搭建實例
  3. 虛擬用戶的FTP服務器搭建實例
  4. 企業常見類型搭建實驗

配置與管理FTP服務器

  • 配置與管理FTP服務器
    • 一、FTP相關知識
    • 二、項目設計與準備
    • 三、項目實施
    • 四、認識vsftpd的配置文件
    • 五、配置匿名用戶FTP服務器
    • 六、配置本地用戶FTP服務器
    • 七、配置虛擬用戶FTP服務器
    • 八、主被動模式配置
    • 九、企業實戰與應用

配置與管理FTP服務器

一、FTP相關知識

一、 FTP工作原理

FTP大大的簡化了文件傳輸的復雜性,它能夠使文件通過網絡從一臺主機傳送到另一個主機,卻不受其計算機和操作系統類型的限制。無論是PC、服務器、大型機、還是ISO、Linux、Windows。只要雙方都支持FTP,就可以方便可靠的傳送文件。

二、 FTP具體的工作原理

  1. 客戶端向服務器發送請求、同時客戶端系統動態的打開一個大于1024的端口等待服務器連接
  2. 若FTP服務器在端口21偵聽到該請求、則會在客戶端1031端口和服務器的21端口之間建立一個FTP會話連接
  3. 當需要傳輸數據時、FTP客戶端再動態的打開一個大于1024的端口(比如1032端口)連接到服務器的20端口,并再這兩個端口之間傳輸數據。當數據傳輸完畢,這兩個端口會自動關閉。
  4. 數據傳輸完畢,如果客戶端不向服務端發送拆除連接的請求,則繼續保持連接
  5. 當FTP客戶端向服務端發送拆除連接的請求并確認后、客戶端將端口與FTP服務的連接,客戶端上動態分配的端口將自動釋放。

三、 FTP工作模式

FTP服務有兩種工作模式:主動傳輸模式和被動傳輸模式

四、 匿名用戶

FTP服務不同于WWW它首先要求登錄到服務器上,然后再傳輸文件,這對于很多公開提供軟件下載的服務器來說十分不便,于是匿名用戶訪問就誕生了。使用一個公共的用戶anonymoud,讓任何用戶都可以很方便的從這些服務器上下載軟件。

二、項目設計與準備

2臺安裝好Centos7的計算機、一臺作為服務器、一臺作為客戶端。

主機名稱操作系統IP地址角色
FTP服務器端Centos7192.168.10.101FTP服務器端
FTP客戶端Centos7192.168.10.102FTP客戶端
Windows客戶端Windows192.168.10.100FTP客戶端

三、項目實施

一、本地yum源
插一句 如果你不會安裝軟件或者不會搭建本地yum源 可以先看看我寫的教程 點我前往 學習配置大概需要3~5分鐘

二、IP網卡配置
如果你不會配置網卡的話 可以看看我寫的教程 點我前往 學習一下 大概八分鐘

(1) 檢查yum源是否配置成功

yum makecache // 清除緩存
yum repolist  //查看倉庫列表  //

(2) 安裝vsftpd服務

[root@ftp-server ~]# yum install -y vsftpd* ftp

(3) 啟動vsftpd服務并關閉防火墻

[root@ftp-server ~]# systemctl stop firewalld
[root@ftp-server ~]# systemctl restart vsftpd
[root@ftp-server ~]# setenforce 0

四、認識vsftpd的配置文件

vsftpd服務程序的主配置文件(/etc/vsftpd/vsftpd.conf) 下面的命令可以過濾到沒有必要的注釋

[root@ftp-server ~]# cat /etc/vsftpd/vsftpd.conf |grep -v "#"
# 下面的是文件種的所有參數
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

(1) 主配置文件參數說明

vsftpd服務程序主配置文件種常用的參數及其作用如下表。在后續的實驗種將演示重要的參數用法,幫助大家熟悉并掌握。

選項說明
anonymous_enable設置是否允許匿名用戶登錄服務器
local_enable設置是否允許本地用戶登錄服務器
write_enable設置是否允許寫操作
local_umask設置本地用戶創建文件的umask值
anon*_upload_enable*設置是否允許匿名用戶上傳文件
anon*_mkdir_write_enable*設置是否允許匿名用戶建立目錄
xferlog_enable是否激活日志功能
chown_uploads修改匿名用戶上傳文件的所有者
chown_username=whoever啟用chown_uploads=YES時,指定為主用戶賬戶,whoever表示你的ftp用戶
chroot*_local_user*設置是否將所有用戶限制在其主目錄
chroot*_list_enable*設置是否啟用限制用戶的名單
chroot*_list_file*設置是否限制/排除主目錄下的用戶名單,限制/排除有chrootlocaluser值決定
allow*_writeable_choot*設置chroot目錄的寫權限

(2) FTP數據庫文件說明

/etc/pam.d/vsftpd

vsftpd的PAM配置文件、主要用來加強vsftpd服務的用戶認證

(3) FTP用戶列表文件說明

/etc/vsftpd/ftpusers

所有位于此文件內的用戶都不能訪問vsftpd服務。當然為了安全起見,這個文件種默認包括了root、bin和daemon等用戶

(4) FTP拒絕訪問列表說明

/etc/vsftpd/user_list

這個文件包括的用戶可能是備拒絕訪問vsftpd服務的,也可能是允許訪問的。主要取決于/etc/vsftpd/vsftpd.conf種的userlist_deny參數是設置為yes還是no

  • userlist_deny=NO時,僅允許文件中的用戶訪問FTP服務器
  • userlist_deny=YES時,反之

(5) FTP默認目錄說明

/var/ftp文件夾

該文件夾是vsftpd提供服務的文件集散地,包括一個pub子目錄。在默認配置下,所有的目錄都只是只讀的。

五、配置匿名用戶FTP服務器

  1. vsftpd允許用戶以3種認證模式登錄到FTP服務器上。

    • 匿名用戶:任何人都可以直接登錄服務器
    • 本地用戶:通過本地用戶輸入密碼登錄服務器
    • 虛擬用戶:本身不存在、是一個虛擬出來的用戶、就算黑客破解的用戶信息也無法登錄服務器
  2. 匿名用戶登錄的參數說明

    參數作用
    anonymous_enable=YES允許匿名用戶訪問
    anon_umask=022匿名用戶上傳文件的umask值
    anon_upload_enable=YES允許匿名用戶上傳文件
    anon_mkdir_write_enable=YES允許匿名用戶創建文件
    anon_other_write_enable=YES允許匿名用戶修改目錄名稱或刪除目錄
  3. 配置匿名用戶登錄FTP服務器實例

    題目要求:搭建一臺FTP服務器,允許匿名用戶上傳和下載文件,匿名用戶的根目錄設置為/var/ftp

    新建測試文件 編輯主配置文件

    [root@ftp-server ~]# touch /var/ftp/pub/sample.tar
    [root@ftp-server ~]# vi /etc/vsftpd/vsftpd.conf
    

    在文件后面編輯如下四行 最前面的是行號

    12 anonymous_enable=YES
    29 anon_upload_enable=YES  # 允許上傳文件 如果前面有# 刪除最前面的 “#”
    33 anon_mkdir_write_enable=YES  # 允許創建文件
    

    重啟FTP服務器

    [root@ftp-server ~]# systemctl restart vsftpd
    [root@ftp-server ~]# systemctl stop firewalld
    

    在windows客戶端上輸入ftp://192.168.10.101打開pub目錄

    Win+R 打開運行 輸入ftp://192.168.10.101

    image-20240606160639131

    進入pub目錄

    image-20240606161050976

    image-20240606161624945

    新建文件 發現會出錯

    出錯原因是什么呢?系統本地的權限沒有設置

    設置本地系統權限,將權限直接拉滿

    [root@ftp-server ~]# chmod 777 /var/ftp/pub  // 給目錄所屬設置為ftp
    [root@ftp-server ~]# systemctl restart vsftpd  // 重啟ftp服務
    

    在Windows客戶端再次測試,在pub目錄下創建新文件夾

    image-20240606162515641

六、配置本地用戶FTP服務器

一、FTP服務器配置要求

公司現在又一臺FTP服務器和Web服務器,FTP主要用于維護公司網站內容,包括上傳文件、創建目錄、更新網頁等。公司現在又兩個部門負責維護任務。兩者分別使用team1和team2賬號來管理,僅允許team1和team2登錄服務器.

二、要求分析

將FTP服務器和Web服務器在一起時企業經常采用的方法,這樣方便維護網站,為了增強安全性,首先需要使用僅允許本地用戶訪問,并禁用匿名用戶登錄。其次將team1和team2鎖在/web/www/html目錄下

三、解決方案

  1. 建立維護網站內容的FTP賬號 并 禁止本地登錄 為其設置密碼
[root@ftp-server ~]# mkdir /web/www/html -p  # 創建team1和team2的所屬目錄
[root@ftp-server ~]# useradd team1 -d /web/www/html# 禁止登錄本地并指定家錄
[root@ftp-server ~]# useradd team2 -d  /web/www/html
[root@ftp-server ~]# useradd user1 -d /web/www/html
[root@ftp-server ~]# echo "123" | passwd --stdin user1  # 設置密碼
[root@ftp-server ~]# echo "123" | passwd --stdin  team1
[root@ftp-server ~]# echo "123" | passwd --stdin  team2
  1. 配置vsftpd.conf主配置文件增加或修改相應內容

    [root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf
    12 anonymous_enable=NO # 不允許匿名用戶訪問
    13 local_root=/web/www/html  # 添加這一行
    102 chroot_list_enable=YES  # 取消注釋  激活chroot功能
    104 chroot_list_file=/etc/vsftpd/chroot_list # 取消注釋 鎖定用戶在根目錄種的列表文件
    105 allow_writeable_chroot=YES # 啟用chroot就一定加入這條:允許chroot限制
    106 write_enable=yes
    
  2. 建立/etc/vsftpd/chroot_list文件、添加team1、team2賬號

    [root@ftp-server vsftpd]# vim /etc/vsftpd/chroot_list
    [root@ftp-server vsftpd]# cat chroot_list
    team1
    team2
    
  3. 創建測試文件 并賦予目錄權限值

    [root@ftp-server vsftpd]# touch /web/www/html/test.tar
    [root@ftp-server vsftpd]# chmod -R 777 /web/www/html/test.tar
    
  4. 重啟ftp服務

    [root@ftp-server vsftpd]# systemctl restart vsftpd
    
  5. 注意

    今天做這個實驗的時候 發現了一個特別重要的點

    chroot_list的作用是限制文件內的用戶固定在目錄種

    • chroot_list=YES的話 僅文件中的用戶可以訪問所有目錄 例如 /etc

    • chroot_list=No的話 除文件中的用戶不可以訪問所有目錄

四、測試

  1. 限制在本地目錄的team1

    [root@ftp-server ~]# ftp localhost 21 
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): team1  # 輸入登錄的用戶
    331 Please specify the password.
    Password:  # 輸入密碼
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> pwd  # 查看當前目錄
    257 "/"
    ftp> cd /etc/  # 嘗試進入/etc目錄
    550 Failed to change directory. # 拒絕
    
  2. 不限制在本地用戶的user1

    [root@ftp-server ~]# ftp localhost 21
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): user1  
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> cd /etc # 嘗試進入/etc
    250 Directory successfully changed.  # 成功
    

七、配置虛擬用戶FTP服務器

一、要求:

使用虛擬用戶user2、user3登錄FTP服務器、訪問主目錄時/var/ftp/vuser,用戶只允許查看文件、不允許上傳、修改等操作

二、 創建用戶數據庫

三、創建用戶文本文件

# 進入目錄
[root@ftp-server ~]# cd /etc/vsftpd/
# 創建文本文件
[root@ftp-server vsftpd]# vim vuer
user2
123
user3
123
# 文本文件的格式為
用戶
密碼
用戶
密碼

四、生成數據庫

保存虛擬賬號及密碼的文本文件無法被系統賬號直接調用 需要使用db_load命令生成db數據庫文件

[root@ftp-server vsftpd]# db_load -T -t hash -f vuer vuer.db

五、配置PAM文件

為了使服務器能夠使用數據庫問就按,對客戶端進行身份驗證,需要調用系統的PAM模塊。

下面修改vsftpd對應的PAM配置文件/etc/pam.d/vsftpd、將默認配置使用“#”全部注釋

[root@ftp-server vsftpd]# vim /etc/pam.d/vsftpd
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth required pam_userdb.so dn=/etc/vsftpd/vuser
account required pam_userdb.so dn=/etc/vsftpd/vuser

六、編輯主配置文件

[root@ftp-server vsftpd]# vim /etc/vsftpd/vsftpd.conf # 在最后添加下面四行
129 guest_enable=YES
130 guest_username=vuser
131 user_config_dir=/etc/vsftpd/vuser_conf
132 allow_writeable_chroot=YES

七、配置虛擬用戶權限

[root@ftp-server vsftpd]# cd /etc/vsftpd
[root@ftp-server vsftpd]# mkdir vuser_conf
[root@ftp-server vsftpd]# cd vuser_conf
[root@ftp-server vuser_conf]# vim user2
local_root=/var/ftp/vuser
[root@ftp-server vuser_conf]# vim user3
local_root=/var/ftp/vuser

八、創建測試文件

[root@ftp-server vuser_conf]# touch /var/ftp/vuser/user2.tar
[root@ftp-server vuser_conf]# touch /var/ftp/vuser/user3.tar

九、重啟測試

# 重啟服務
[root@ftp-server vuser_conf]# systemctl restart vsftpd# 登錄user2
[root@ftp-server vuser_conf]# ftp localhost 21
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): user2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||60168|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 06 18:46 user2.tar
-rw-r--r--    1 0        0               0 Jun 06 18:46 user3.tar# user2其他權限測試
ftp> cd /etc/  # 進入其它目錄權限
550 Failed to change directory.  # 失敗
ftp> mkdir user2  # 創建文件權限
550 Permission denied. # 失敗# 登錄user3
[root@ftp-server vuser_conf]# ftp localhost 21
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): user3
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||28511|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 06 19:03 user2.tar
-rw-r--r--    1 0        0               0 Jun 06 19:03 user3.tar# user3其他權限測試
ftp> cd /etc/  # 進入其它目錄權限
550 Failed to change directory.  # 失敗
ftp> mkdir user3  # 創建文件權限
550 Permission denied. # 失敗

八、主被動模式配置

(1) 主模式配置

# 開啟主動模式
port_enable=YES

(2) 被動模式配置

pasv_enable=YES
# 被動模式最低端口
PASV_min_port=%number%
# 被動模式最高端口
PASV_max_port=%number%#=

九、企業實戰與應用

一、 要求

公司計劃搭建FTP服務器、為客戶提供相關文檔下載。對所有互聯網用戶開放共享目錄,允許下載產品信息,禁止上傳。公司的合作單位能夠**使用FTP服務器進行上傳和下載,但不可刪除數據,**并且為保證服務器的穩定性,需要進行適當的優化設置。

二、 分析

對不同用戶進行不同的權限限制,FTP服務器需要實現用戶的審核。為了考慮安全性,關閉實體用戶登錄。使用虛擬用戶驗證機制。

三、 項目實施

四、創建用戶數據庫

  1. 創建用戶數據庫

    添加兩個虛擬用戶 ftps為公共用戶 vip為客戶用戶

    [root@ftp-server vuser_conf]# cd /etc/vsftpd/
    [root@ftp-server vsftpd]# vim ftpuser
    ftps
    123
    vip
    123
    
  2. 生成數據庫

    [root@ftp-server vsftpd]# db_load -T -t hash -f ftpuser ftpuser.db
    

五、 配置PAM文件

  1. 修改文件

    [root@ftp-server vsftpd]# vim /etc/pam.d/vsftpd
    #%PAM-1.0
    #session    optional     pam_keyinit.so    force revoke
    #auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
    #auth       required    pam_shells.so
    #auth       include     password-auth
    #account    include     password-auth
    #session    required     pam_loginuid.so
    #session    include     password-auth
    auth required pam_userdb.so db=/etc/vsftpd/ftpuser  # 換成ftpuser
    account required pam_userdb.so db=/etc/vsftpd/ftpuser  # 換成ftpuser
    

六、 編輯主配置文件

在最后面添加四行

[root@ftp-server vsftpd]# vim /etc/vsftpd/vsftpd.conf
129 guest_enable=YES
130 guest_username=vsftp
131 allow_writeable_chroot=YES
132 user_config_dir=/etc/vsftpd/ftpuser_conf  # 指定虛擬用戶的配置文件目錄

七、 配置虛擬用戶配置文件

[root@ftp-server vsftpd]# mkdir /etc/vsftpd/ftpuser_conf
  1. ftps配置文件

    [root@ftp-server vsftpd]# vim /etc/vsftpd/ftpuser_conf/ftps
    local_root=/var/ftp/public  # 指定根目錄
    anon_upload_enable=YES  # 允許下載
    write_enable=NO # 禁止上傳創建文件
    
  2. vip配置文件

    [root@ftp-server vsftpd]# vim /etc/vsftpd/ftpuser_conf/vip
    local_root=/var/ftp/public
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_umask=022
    

八、 創建共享目錄和測試文件

[root@ftp-server vsftpd]# mkdir /var/ftp/public
[root@ftp-server vsftpd]# chmod 777 /var/ftp/public
[root@ftp-server vsftpd]# touch /var/ftp/public/test.txt

九、 重啟測試

ftps測試

  1. 下載和查看文件測試

    root@ftp-server vsftpd]# systemctl restart vsftpd
    [root@ftp-server vsftpd]# ftp localhost 21
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): ftps
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    229 Entering Extended Passive Mode (|||27230|).
    150 Here comes the directory listing.
    -rw-r--r--    1 0        0               0 Jun 06 19:29 test.txt
    226 Directory send OK.
    ftp> get test.txt
    local: test.txt remote: test.txt
    229 Entering Extended Passive Mode (|||57910|).
    150 Opening BINARY mode data connection for test.txt (0 bytes).
    226 Transfer complete.
    
  2. 上傳文件測試

    ftp> put test.txt
    local: test.txt remote: test.txt
    229 Entering Extended Passive Mode (|||46731|).
    550 Permission denied.
    
  3. 創建文件測試

    ftp> mkdir toto
    550 Permission denied.
    

vip測試

  1. 下載查看文件測試

    [root@ftp-server vsftpd]# ftp localhost 21
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): vip
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls  # 查看
    229 Entering Extended Passive Mode (|||46926|).
    150 Here comes the directory listing.
    -rwxrwxrwx    1 0        0               0 Jun 06 19:39 test.txt
    226 Directory send OK.
    ftp> get test.txt # 下載
    local: test.txt remote: test.txt
    229 Entering Extended Passive Mode (|||29663|).
    150 Opening BINARY mode data connection for test.txt (0 bytes).
    226 Transfer complete.
    

    上傳文件測試

    ftp> put chroot_list
    local: chroot_list remote: chroot_list
    229 Entering Extended Passive Mode (|||60080|).
    150 Ok to send data.
    226 Transfer complete.
    12 bytes sent in 3.6e-05 secs (333.33 Kbytes/sec)
    

    創建刪除文件測試

    ftp> mkdir test  # 創建目錄test
    257 "/test" created  # 成功
    ftp> ls  # 查看
    229 Entering Extended Passive Mode (|||15449|).
    150 Here comes the directory listing.
    -rw-r--r--    1 14       50             12 Jun 06 19:40 chroot_list
    drwxr-xr-x    2 14       50              6 Jun 06 19:41 test
    -rwxrwxrwx    1 0        0               0 Jun 06 19:39 test.txt
    226 Directory send OK.
    ftp> rmdir test # 刪除
    250 Remove directory operation successful. #成功
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23663.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實驗一、網絡傳輸介質————雙絞線 《計算機網絡》

蝙蝠身上長雞毛,忘了自己是什么鳥。 目錄 一、實驗目的 二、實驗內容 1.雙絞線的原理以及分類 2.了解雙絞線的性質、結構與特性 3.掌握雙絞線的制作方法 4.了解雙絞線的材質 5.了解雙絞線的發展趨勢 三、實驗小結 一、實驗目的 1.雙絞線的原理以及分類 2.了…

MyBatisPlus——入門到進階

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。🍎個人主頁:Meteors.的博客💞當前專欄:知識分享、知識備份?特色專欄: 知識分享…

【GIS教程】土地利用轉移矩陣

隨著科技社會的不斷進步,人類活動對地理環境的影響與塑造日益明顯,土地不斷的侵蝕與改變也導致一系列的環境問題日益突出。土地利用/覆蓋(LUCC)作為全球環境變化研究的重點問題為越來越多的國際研究機構所重視,研究它的…

Day25 首頁待辦事項及備忘錄添加功能

? 本章節,完成首頁待辦事項及備忘錄添加功能 一.修改待辦事項和備忘錄邏輯處理類,即AddMemoViewModel和AddTodoViewModel 在 AddMemoViewModel邏輯處理類中,為了支持與其關聯的View視圖文件的數據綁定,需要定義一個與視圖文件相匹配的實體類 Model。這個Model將包含 View中…

圖像算法---自動對焦AF

一,CDAF反差對焦原理 CDAF,全稱Contrast Detection Auto Focus,即反差式對焦或對比度檢測自動對焦,是一種廣泛應用于入門級數碼相機和相機模塊化智能手機上的自動對焦技術。以下是關于CDAF反差對焦的詳細介紹: 工作原…

測繪航空攝影乙級資質升級為甲級的過渡期規劃

升級測繪航空攝影乙級資質為甲級通常需要一個詳細的過渡期規劃,這個過程涉及提升技術力量、積累業績、完善管理體系等多個方面。以下是一個概括性的過渡期規劃框架,具體實施時需結合實際情況和最新的資質標準進行調整: 1. 了解最新資質標準 …

每日AI資訊-20240606

智普AI推出全新開源大模型GLM-4-9B 智譜AI日前推出全新開源模型GLM-4-9B,該尺寸模型首次具備多模態能力。據了解,GLM-4-9B,最高支持1M/約兩百萬字上下文輸入,相當于2本《紅樓夢》或125篇論文的長度。性能上,GLM-4-9B函…

《手把手教你》系列練習篇之13-python+ selenium自動化測試 -壓軸篇(詳細教程)

1. 簡介 “壓軸”原本是戲曲名詞,指一場折子戲演出的倒數第二個劇目。在現代社會中有很多應用,比如“壓軸戲”,但壓軸也是人們知識的一個盲區。“壓軸”本意是指倒數第二個節目,而不是人們常說的倒數第一個,倒數第一個…

苗情生態自動監測站

TH-MQ1在現代農業發展中,苗情生態自動監測站的應用已經變得日益重要。這種技術不僅為農業生產提供了實時的數據支持,還通過精準監測和科學決策,提高了農業生產的效率和質量。 首先,苗情生態自動監測站的優勢在于其能夠實現精準監…

Java并發編程:線程與并發工具

Java并發編程:線程與并發工具 引言 在現代計算機程序中,并發編程是一個不可避免的主題。無論是提升應用程序性能,還是處理多個任務并發執行,Java為開發者提供了豐富的并發編程工具。在本篇文章中,我們將深入探討Java的并發編程,包括線程的基礎知識、線程池的使用以及常…

全流程透明雙語大語言模型MAP-Neo,4.5T 高質量數據訓練

前言 近年來,大語言模型 (LLM) 已經成為人工智能領域最熱門的研究方向之一,并在各種任務中展現出前所未有的性能。然而,由于商業利益的驅動,許多最具競爭力的模型,例如 GPT、Gemini 和 Claude,其訓練細節和…

讀書筆記-《軟件定義安全》之一:SDN和NFV:下一代網絡的變革

第1章 SDN和NFV:下一代網絡的變革 1.什么是SDN和NFV 1.1 SDN/NFV的體系結構 SDN SDN的體系結構可以分為3層: 基礎設施層由經過資源抽象的網絡設備組成,僅實現網絡轉發等數據平面的功能,不包含或僅包含有限的控制平面的功能。…

Unity Magica Cloth2 使用教程

視頻教程 參考文章 前提: 找到角色的模型 模之屋,我這里準備了轉好FBX格式的吟霖模型點擊自取【源自 模之屋】 角色舞蹈動畫 點擊下載【源自 Mixamo】 導入Unity【如何將原神的角色導入Unity】 三渲二 (必須是2022.3LTS和URP項目) Magica Cloth2 頭…

深入探索Stage #13:CSS層疊樣式表的IE特性偽協議注入

在網絡安全領域,跨站腳本攻擊(XSS)是一種常見的攻擊手段。隨著Web技術的不斷發展,攻擊者也在不斷探索新的攻擊途徑。本文將詳細介紹如何利用IE瀏覽器的特性,通過CSS層疊樣式表進行XSS攻擊。 實驗環境搭建 為了模擬IE…

spring boot 白盒測試實戰

假設項目中存在以下代碼: 常量類:public final static String NUMBER_REGEX "\\d"; service:return ReUtil.getGroup0(Constants.NUMBER_REGEX, waybill); 代碼解析 解釋: return ReUtil.getGroup0(Constants.NUMB…

python學習 - 使用OpenCV庫(cv2)和imutils庫實現輔助答題卡判別

測試數據見文章頂部位置資源!!! 使用了OpenCV庫(cv2)和imutils庫。代碼的主要目的是處理圖像中的問題,如識別圖像中的文字,并對其進行分析和排序。 輔助答題卡判別 # -*- coding:utf-8 -*- fr…

python實現郵箱轟炸機

最近在學計算機網絡看到套接字的練習 于是應用SMTP協議寫了個發送郵箱的玩玩 可以發一大堆垃圾郵件給對方 其中參考了 關于發郵件報錯535 Error:authentication failed解決方法http://t.csdnimg.cn/Bc0Dq 已經查詢如何獲取網易郵箱客戶端授權碼 base64編碼 i…

Mybatis05-一對多和多對一處理

多對一和一對多 多對一 多對一的理解: 多個學生對應一個老師 如果對于學生這邊,就是一個多對一的現象,即從學生這邊關聯一個老師! 結果映射(resultMap): association 一個復雜類型的關聯&…

在線Logo背景去除:pixian.ai

文章目錄 簡介特色 簡介 pixian.ai是一款智能圖片背景去除工具,進入網頁后,會非常醒目地提示你準備【Free】還是【Paid】,這點就非常好,不向有一些網站,主打免費使用,但時不時彈出“免費注冊”&#xff0c…

【微信小程序】連接藍牙設備

1、檢查小程序是否授權藍牙功能 initBluetooth() {const that thiswx.getSetting({success: (res) > {if (res.authSetting.hasOwnProperty(scope.bluetooth)) {//scope.bluetooth屬性存在,且為falseif (!res.authSetting[scope.bluetooth]) {wx.showModal({tit…