国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

詳解CentOS7安裝配置vsftp搭建FTP

2024-09-01 13:50:26
字體:
來源:轉載
供稿:網友

安裝配置vsftpd做FTP服務,我們的Web應用使用git管理進行迭代,公共文件軟件存儲使用開源網盤Seafile來管理,基本夠用。想不到FTP的使用的場景,感覺它好像老去了,雖然現在基本沒有用到這個工具,但剛好公司公司刷一個硬件需要使用FTP來下載配置文件,于是研究使用了一下,記錄了一下使用過程。

安裝

在安裝前查看是否已安裝vsftpd

# 查看是否已安裝 方法一[root@localhost ~]# rpm -q vsftpdvsftpd-3.0.2-21.el7.x86_64# 查看是否已安裝 方法二[root@localhost ~]# vsftpd -vvsftpd: version 3.0.2# 安裝 vsftpd[root@localhost ~]# yum -y install vsftpd

查看位置

[root@localhost ~]# whereis vsftpdvsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

啟動vsftpd服務

systemctl start vsftpd.service

關閉firewall和SELinux

setenforce 0  # 設置SELinux 成為permissive模式 (關閉SELinux)setenforce 1  # 設置SELinux 成為enforcing模式  (開啟SELinux)# 或者修改配置vi /etc/selinux/config# SELINUX=enforcing# 注釋掉# SELINUXTYPE=targeted# 注釋掉SELINUX=disabled# 增加:wq! #保存退出setenforce 0

或者設置SELinux

getsebool -a | grep ftpsetsebool -P ftpd_full_access on
systemctl stop firewalld.service#停止firewallsystemctl disable firewalld.service#禁止firewall開機啟動

如果你不愿意關閉防火墻,需要防火墻添加FTP服務。

firewall-cmd --permanent --zone=public --add-service=ftpfirewall-cmd --reload

修改配置文件

配置文件/etc/vsftpd/vsftpd.conf

anonymous_enable=NO    # 不允許匿名訪問,禁用匿名登錄chroot_local_user=YES   # 啟用限定用戶在其主目錄下use_localtime=YES     # 使用本地時(自行添加)chroot_list_enable=YESlocal_enable=YES      # 允許使用本地帳戶進行FTP用戶登錄驗證allow_writeable_chroot=YES # 如果啟用了限定用戶在其主目錄下需要添加這個配置,解決報錯 500 OOPS: vsftpd: refusing to run with writable root inside chroot()xferlog_enable=YES     # 啟用上傳和下載的日志功能,默認開啟。local_umask=022      # 設置本地用戶默認文件掩碼022# FTP上本地的文件權限,默認是077,不過vsftpd安裝后的配置文件里默認是022

虛擬用戶高級參數

  • 當virtual_use_local_privs=YES 時,虛擬用戶和本地用戶有相同的權限;
  • 當virtual_use_local_privs=NO  時,虛擬用戶和匿名用戶有相同的權限,默認是NO。
  • 當virtual_use_local_privs=YES,write_enable=YES時,虛擬用戶具有寫權限(上傳、下載、刪除、重命名)。
  • 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,anon_upload_enable=YES時,虛擬用戶不能瀏覽目錄,只能上傳文件,無其他權限。
  • 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=NO時,虛擬用戶只能下載文件,無其他權限。
  • 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=YES時,虛擬用戶只能上傳和下載文件,無其他權限。
  • 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_mkdir_write_enable=YES時,虛擬用戶只能下載文件和創建文件夾,無其他權限。
  • 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_other_write_enable=YES時,虛擬用戶只能下載、刪除和重命名文件,無其他權限。

匿名登錄

安裝完默認情況下是開啟匿名登錄的,對應的是 /var/ftp 目錄,這時只要服務啟動了,就可以直接連上FTP了。默認用戶名是ftp,密碼是空的。如果你在配置里面配置了anonymous_enable=NO,匿名就無法登錄。

$ ftp 192.168.188.114Connected to 192.168.188.114.220 (vsFTPd 3.0.2)Name (192.168.188.114:kennywang): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls229 Entering Extended Passive Mode (|||47867|).150 Here comes the directory listing.-rw-r--r--  1 0    0       12 Jan 18 06:31 README.mddrwxr-xr-x  2 0    0        6 Nov 05 19:43 pub226 Directory send OK.

多用戶配置

多用戶配置需要自己手工添加配置,下面內容到vsftpd.conf末尾

# # use_localtime=YES     # 使用本地時(自行添加)listen_port=21chroot_local_user=YES   # 啟用限定用戶在其主目錄下idle_session_timeout=300data_connection_timeout=120 # 數據連接超時時間guest_enable=YES       # 設定啟用虛擬用戶功能guest_username=ftpuser    # 指定虛擬用戶的宿主用戶 ftpuser(就是我們后面會新建這個用戶)# guest_username=www# 如果ftp目錄是指向網站根目錄,用來上傳網站程序,# 可以指定虛擬用戶的宿主用戶為nginx運行賬戶www,可以避免很多權限設置問題 user_config_dir=/etc/vsftpd/vuser_conf  # 虛擬用戶配置文件目錄virtual_use_local_privs=YES # NO時,虛擬用戶和匿名用戶有相同的權限,默認是NOpasv_min_port=10060     # 被動模式最小端口號10060pasv_max_port=10090     # 被動模式最大端口號10090accept_timeout=5connect_timeout=1

創建宿主用戶

新建系統用戶ftpuser,用戶目錄為/home/vsftpd, 用戶登錄終端設為/bin/false(即使之不能登錄系統)

# 方法一# 創建用戶 ftpuser 指定 `/home/vsftpd` 目錄useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser# 設置用戶 ftpuser 的密碼passwd ftpuser# 把 /home/vsftpd 的所有權給ftpuser.rootchown -R ftpuser.root /home/vsftpd# 方法二useradd ftpuser -d /home/vsftpd -s /bin/falsechown ftpuser:ftpuser /home/vsftpd -R # 如果虛擬用戶的宿主用戶為www,需要這樣設置# www目錄是你應用的目錄chown www:www /home/www -R

刪除用戶 userdel ftpuser

建立虛擬用戶文件

touch /etc/vsftpd/vuser_passwd# 編輯虛擬用戶名單文件:(# 第一行賬號,第二行密碼,注意:不能使用root做用戶名,系統保留)vi /etc/vsftpd/vuser_passwd # 編輯內容,下面是 vuser_passwd 內容wcj123456hss123456#保存退出

生成虛擬用戶數據文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.dbchmod 600 /etc/vsftpd/vuser_passwd.db

創建用戶配置

mkdir /etc/vsftpd/vuser_conf # 建立虛擬用戶個人vsftp的配置文件cd /etc/vsftpd/vuser_conf   # 進入目錄touch hss wcj         # 這里創建兩個虛擬用戶配置文件

每一個文件配置文件都差不多,只是參數local_root不一樣。

local_root=/home/vsftpd/hss  # 用戶 hss 配置目錄,這個地方不一樣write_enable=YES       # 允許本地用戶對FTP服務器文件具有寫權限anon_world_readable_only=NOanon_upload_enable=YES    # 允許匿名用戶上傳文件(須將全局的write_enable=YES,默認YES)anon_mkdir_write_enable=YES  # 允許匿名用戶創建目錄anon_other_write_enable=YES  # 允許匿名用戶刪除和重命名權限(自行添加)

創建用戶目錄

每個用戶目錄文件夾是有root用戶創建的,也就是上面local_root配置目錄,其權限應設置為755。因為權限的問題在該文件夾內無法直接上傳文件。而如果設置為777則無法訪問,這是由于vsftpd的安全性設置。解決上傳問題的方法是在local_root文件夾內新建一個upload的文件夾,權限設置為777,可將文件上傳到該文件夾。

mkdir -p /home/vsftpd/hss   # 每個用戶對于一個目錄,創建兩個目錄“hss”、“wcj”# 下面是目錄結構/home/vsftpd   ├── hss   │  ├── filename.md   │  └── upload   └── wcj     └── filename.md# 賦予其權限chmod -R 777 /var/vsftpd/hss/upload/# 在/var/ftp下新建一個目錄來實現匿名用戶上傳mkdir /var/ftp/upload

vsftpd中幾種用戶的區分:

本地用戶:用戶在FTP服務器擁有賬號,且該賬號為本地用戶的賬號,可以通過自己的賬號和口令進行授權登錄,登錄目錄為自己的home目錄$HOME

虛擬用戶:用戶在FTP服務器上擁有賬號,但該賬號只能用于文件傳輸服務。登錄目錄為某一特定的目錄,通??梢陨蟼骱拖螺d

匿名用戶:用戶在FTP服務器上沒有賬號,登錄目錄為/var/ftp

最后重啟vsftpd服務器

systemctl restart vsftpd.service

服務運維

systemctl restart vsftpd.service # 重啟服務systemctl start vsftpd.service  # 啟動服務systemctl status vsftpd.service  # 服務狀態查看

FTP命令

ftp> ascii # 設定以ASCII方式傳送文件(缺省值) ftp> bell  # 每完成一次文件傳送,報警提示. ftp> binary # 設定以二進制方式傳送文件. ftp> bye  # 終止主機FTP進程,并退出FTP管理方式. ftp> case # 當為ON時,用MGET命令拷貝的文件名到本地機器中,全部轉換為小寫字母. ftp> cd   # 同UNIX的CD命令. ftp> cdup  # 返回上一級目錄. ftp> chmod # 改變遠端主機的文件權限. ftp> close # 終止遠端的FTP進程,返回到FTP命令狀態, 所有的宏定義都被刪除. ftp> delete # 刪除遠端主機中的文件. ftp> dir [remote-directory] [local-file] # 列出當前遠端主機目錄中的文件.如果有本地文件,就將結果寫至本地文件. ftp> get [remote-file] [local-file] # 從遠端主機中傳送至本地主機中. ftp> help [command] # 輸出命令的解釋. ftp> lcd # 改變當前本地主機的工作目錄,如果缺省,就轉到當前用戶的HOME目錄. ftp> ls [remote-directory] [local-file] # 同DIR. ftp> macdef         # 定義宏命令. ftp> mdelete [remote-files] # 刪除一批文件. ftp> mget [remote-files]  # 從遠端主機接收一批文件至本地主機. ftp> mkdir directory-name  # 在遠端主機中建立目錄. ftp> mput local-files # 將本地主機中一批文件傳送至遠端主機. ftp> open host [port] # 重新建立一個新的連接. ftp> prompt      # 交互提示模式. ftp> put local-file [remote-file] # 將本地一個文件傳送至遠端主機中. ftp> pwd # 列出當前遠端主機目錄. ftp> quit # 同BYE. ftp> recv remote-file [local-file] # 同GET. ftp> rename [from] [to]   # 改變遠端主機中的文件名. ftp> rmdir directory-name  # 刪除遠端主機中的目錄. ftp> send local-file [remote-file] # 同PUT. ftp> status  # 顯示當前FTP的狀態. ftp> system  # 顯示遠端主機系統類型. ftp> user user-name [password] [account] # 重新以別的用戶名登錄遠端主機. ftp> ? [command] # 同HELP. [command]指定需要幫助的命令名稱。如果沒有指定 command,ftp 將顯示全部命令的列表。ftp> ! # 從 ftp 子系統退出到外殼。 

關閉FTP連接

bye

exit

quit

下載文件

ftp> get readme.txt # 下載 readme.txt 文件ftp> mget *.txt   # 下載 

上傳文件

ftp> put /path/readme.txt # 上傳 readme.txt 文件ftp> mput *.txt      # 可以上傳多個文件

狀態碼

  • 230 - 登錄成功
  • 200 - 命令執行成功
  • 150 - 文件狀態正常,開啟數據連接端口
  • 250 - 目錄切換操作完成
  • 226 - 關閉數據連接端口,請求的文件操作成功

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝阳县| 山丹县| 子洲县| 黎川县| 吴忠市| 贵阳市| 闵行区| 温宿县| 六盘水市| 安陆市| 新郑市| 盈江县| 合水县| 融水| 定兴县| 上林县| 南昌市| 北安市| 北川| 商城县| 蒙城县| 石柱| 磐石市| 蒲江县| 庆阳市| 镇坪县| 错那县| 遵义县| 南召县| 高唐县| 沐川县| 大英县| 大丰市| 涞源县| 五华县| 农安县| 南通市| 宁陵县| 无为县| 宜阳县| 休宁县|