linux菜鳥,還沒用過ftp服務;在windows下用的是filezilla,一開始還在想linux下也用它,因為知道它是開源的,在linux下用它更顯得理所當然了,後來發現網上介紹大多都vsftpd,所以就用vsftpd做ftp服務了。
安裝在安裝前檢視是否已安裝vsftpd
[root@localhost ~]# rpm -q vsftpd
vsftpd-3.0.2-9.el7.x86_64
如果有顯示類似以上的資訊,說明已經安裝vsftpd,如果沒有,用yum安裝:
[root@localhost ~]# yum -y install vsftpd
檢視一下vsftpd安裝在哪:
[root@localhost ~]# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
啟動vsftpd服務:
[root@localhost ~]# systemctl start vsftpd.service
配置對於從未使用過vsftpd的linux菜鳥來說,在配置之前,簡單了解一下vsftpd服務的過程相當有必要的。安裝完預設情況下是開啟匿名登入的,對應的是 /var/ftp 目錄,這時只要服務啟動了,就可以直接連上ftp了。
pcvcdeimac:~ pcvc$ ftp 192.168.0.117
connected to 192.168.0.117.
220 (vsftpd 3.0.2)
name (192.168.0.117:pcvc): ftp
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 (|||37296|).
150 here comes the directory listing.
drwxr-xr-x 2 0 0 6 jun 10 2014 pub
226 directory send ok.
然而,一般情況下我們都是按分配的使用者去訪問各自的目錄,vsftpd的使用者分為系統使用者和虛擬使用者,系統使用者也就是系統實際存在的linux使用者,而虛擬使用者則是存在於配置檔案裡面的。系統使用者方式比較簡單,建立系統使用者,確保使用者能對ftp目錄進行讀寫就可以了。以下是建立普通linux使用者,詳見 useradd 命令。其實,從以上連線ftp資訊可以看出,有的系統已預設建立了名為ftp的使用者了。
[root@localhost ~]# useradd -g root -m -d /var/www/html -s /sbin/nologin ftpuser
[root@localhost ~]# passwd ftpuser
[root@localhost ~]# 輸入密碼
把 /var/www/html 的所有權給ftpuser.root
[root@localhost ~]# chown -r ftpuser.root /var/www/html
這樣就可以通過ftpuser使用者連線ftp了。至於虛擬使用者需要做的步驟就比較多了。首先虛擬使用者的使用者認證是通過pam方式去認證的,pam檔案裡面指定了認證的db檔案,db檔案又是通過明文使用者名稱和密碼檔案生成而來,為何要這麼繞我也不大清楚。那麼首先我們要指定pam檔案,這個在 /etc/vsftpd/vsftpd.conf 配置檔案是通過 pam_service_name=vsftpd 配置指定的,其位置是 /etc/pam.d/vsftpd,編輯該檔案,把檔案內容全部注釋掉,加上以下兩行:
64位系統:
1 2
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
32位系統:
1 2
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
db=/etc/vsftpd/vuser_passwd 指定了db檔案的位置,接下來就是生成db檔案,由於db檔案是通過明文使用者名稱和密碼檔案生成而來,所以先建立乙個儲存明文使用者名稱和密碼的檔案 vuser_passwd.txt
[root@localhost ~]# vi /etc/vsftpd/vuser_passwd.txt
該檔案奇行為使用者名稱,偶行為密碼:
1 2
pcvc
iampasswd
然後通過以下命令生成db檔案:
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]# db_load -t -t hash -f vuser_passwd.txt vuser_passwd.db
至此使用者的認證就知道怎麼一回事了,如果要新增新的使用者,在編輯 vuser_passwd.txt 後要再次生成一下db檔案。然後現在每個使用者的具體配置,如指向目錄、可讀寫許可權等又是在哪配置的呢,原來它是通過乙個使用者對應乙個配置檔案來實現的,且這個檔案必須用ftp使用者名稱去做檔名,建乙個目錄專門存放這些檔案:
[root@localhost vsftpd]# mkdir vuser_conf
[root@localhost vsftpd]# vi vuser_conf/pcvc
檔案內容大致如下:
1 2
3 4
5 6
7 local_root=/var/www/pcvcnet
write_enable=yes
anon_umask=022
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
接下來就是根據需要和以上各檔案資訊來修改配置檔案 /etc/vsftpd/vsftpd.conf 了,啟用或更改以下配置的值:
1 2
3 4
anonymous_enable=no # 禁用匿名登入
ascii_upload_enable=yes
ascii_download_enable=yes
chroot_local_user=yes # 啟用限定使用者在其主目錄下
以下配置是需要自己手工新增:
1 2
3 4
guest_enable=yes # 設定啟用虛擬使用者功能
guest_username=ftpuser # 指定虛擬使用者的宿主使用者,centos中已經有內建的ftp使用者了
user_config_dir=/etc/vsftpd/vuser_conf # 虛擬使用者配置檔案存放的路徑
allow_writeable_chroot=yes # 如果啟用了限定使用者在其主目錄下需要新增這個配置
用 systemctl restart vsftpd.service 重新啟動服務即可用虛擬使用者登入ftp了。
如果系統啟用了防火牆和selinux,那麼還要做以下配置。
防火牆新增ftp服務:
[root@localhost vsftpd]# firewall-cmd –permanent –zone=public –add-service=ftp
[root@localhost vsftpd]# firewall-cmd –reload
設定selinux:
[root@localhost vsftpd]# getsebool -a | grep ftp
[root@localhost vsftpd]# setsebool -p ftpd_full_access on
新增新 ftp 使用者
new_ftp_user
new_ftp_user_password
2. 重新生成 vuser_passwd.db 檔案:
3. 建立使用者配置檔案:
配置檔案內容:
local_root=/new/ftp/directory
write_enable=yes
anon_umask=022
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
3. 重啟服務:
Linux CentOS 7 安裝配置vsftp
學習linux時間不長,首次安裝了vsftp,按照網上的各種帖子嘗試配置,不過都沒打到預期,不是被拒絕連線,就是連線超時,總之就是各種問題啊。當然了,不是別人配置的不對,而是自己不是太懂linux,選擇的配置引數彼此之間不知道 起了衝突。所以結合自己的系統把安裝配置過程記錄下來,方便以後學習總結。y...
CentOS 7 安裝 配置
本例為 minimal iso 版本 centos 與 rhel 是同源,所以,在 centos 文件不足時,可以參考 rhel 的文件。本例子環境為 windows 可以使用 fedora liveusb creator 或者 ultraiso 等工具來把系統寫入 u盤,而後通過u盤啟動來安裝系統...
CentOS7 安裝配置 vsftpd
yum install y vsftpdvi etc vsftpd vsftpd.confanonymous enable no anonymous enable yes chroot local user yes 去掉前面的注釋 chroot list enable yes chroot list...