真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

FTP(vsftpd)forCentOS7

1 安裝

[root@CentOS7-01 ~]#yum -y install vsftpd

2 vsftpd服務常見配置

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

2.1 命令端口

listen_port=port #默認為21,如果需要將vsftpd服務暴露在公網,建議修改為其它端口

2.2 匿名用戶登錄

2.2.1 支持匿名用戶

anonymous_enable=YES #默認為YES

2.2.2 匿名用戶略過口令檢查,默認為NO

修改前

FTP(vsftpd) for CentOS7

創(chuàng)新互聯專業(yè)為企業(yè)提供博愛網站建設、博愛做網站、博愛網站設計、博愛網站制作等企業(yè)網站建設、網頁設計與制作、博愛企業(yè)網站模板建站服務,10年博愛做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

修改后
# 在配置文件最后面加上下面的配置,然后重啟vsftpd
no_anon_password=YES

[root@CentOS7-01 ~]#systemctl restart vsftpd

FTP(vsftpd) for CentOS7

2.3 匿名用戶上傳

2.3.1支持匿名用戶上傳

默認情況下,匿名用戶只能下載ugo三者都有讀權限的文件,但是不能上傳,如下圖

FTP(vsftpd) for CentOS7

# 要想支持匿名用戶上傳,需要修改配置文件
anon_upload_enable=YES #把前面的#去掉即可,然后重啟服務
[root@CentOS7-01 ~]#systemctl restart vsftpd
雖然配置了允許匿名用戶上傳,但是再次上傳還是報錯,不過原因是因為目錄權限導致

FTP(vsftpd) for CentOS7

#默認情況下,/var/ftp/pub目錄權限為755,所以匿名用戶無法往這個目錄上傳文件
# [root@CentOS7-01 ~]#ll /var/ftp/pub/ -d
drwxr-xr-x 2 root root 6 Dec 18 11:15 /var/ftp/pub/

# 利用acl為ftp用戶設置rwx權限
[root@CentOS7-01 ~]#setfacl -m u:ftp:rwx /var/ftp/pub/
[root@CentOS7-01 ~]#getfacl /var/ftp/pub/
getfacl: Removing leading '/' from absolute path names
# file: var/ftp/pub/
# owner: root
# group: root
user::rwx
user:ftp:rwx
group::r-x
mask::rwx
other::r-x

FTP(vsftpd) for CentOS7

2.3.2 匿名創(chuàng)建目錄

FTP(vsftpd) for CentOS7

# 如上圖所示,匿名用戶默認不能創(chuàng)建目錄,需改配置文件
anon_mkdir_write_enable=YES #把前面的#去掉即可,然后重啟服務
[root@CentOS7-01 ~]#systemctl restart vsftpd

FTP(vsftpd) for CentOS7

2.3.3 只能下載ugo三者都有讀權限的文件,默認YES

FTP(vsftpd) for CentOS7

# 如上圖,復制f2文件到本地的時候,提示報錯,來看下該文件的權限
[root@CentOS7-01 ~]#ll /var/ftp/pub/
total 0
-rw------- 1 ftp ftp 0 Dec 18 11:23 f1
-rw------- 1 ftp ftp 0 Dec 18 11:22 f2
drwx------ 2 ftp ftp 6 Dec 18 11:33 新文件夾

# 可以看到f2文件權限為600,只有屬主有讀權限,這里將它改為444就能下載了
[root@CentOS7-01 ~]#chmod 444 /var/ftp/pub/f2

FTP(vsftpd) for CentOS7

# 通過上面臨時修改文件權限的方法雖然可以成功下載了,但如果文件量多起來了, 還是手工改權限是不現實的,所以,可以在配置文件加上如下配置,然后重啟服務
anon_world_readable_only=NO
[root@CentOS7-01 ~]#systemctl restart vsftpd

2.3.4 指定匿名上傳文件的umask,默認077

# 默認情況下匿名用戶上傳的文件權限為600,所有不能下載,要想能把上傳的文件下載下來,可以修改配置文件
anon_umask=033 #在配置文件加上此設置,然后重啟服務
[root@CentOS7-01 ~]#systemctl restart vsftpd

# 添加了此配置之后,上傳的文件默認權限就是644,而不用手動修改權限實現下載了

2.3.5 可刪除和修改上傳的文件,默認NO

FTP(vsftpd) for CentOS7

# 要想實現匿名用戶刪除上傳的文件,需修改配置文件
anon_other_write_enable=YES #在文件最后添加此行,然后重啟服務

[root@CentOS7-01 ~]#systemctl restart vsftpd

FTP(vsftpd) for CentOS7

2.4 指定匿名用戶上傳的文件的默認所有者和權限

# 在配置文件中,修改一下內容
chown_uploads=YES #去掉前面的#號,默認為NO
chown_username=hechunping #修改為指定的所有者
chown_upload_mode=0644 #在文件最后加上此行

# 測試上傳新文件file1
[root@CentOS7-01 ~]#ll /var/ftp/pub/
total 0
-rw-r--r-- 1 hechunping ftp 0 Dec 18 14:22 file1.txt

2.5 Linux系統(tǒng)用戶

local_enable=YES #是否允許linux用戶登錄,默認YES
write_enable=YES #允許linux用戶上傳文件,默認YES
local_umask=022 #指定系統(tǒng)用戶上傳文件的默認權限,默認022

FTP(vsftpd) for CentOS7

2.6 將系統(tǒng)用戶映射為指定的guest用戶

guest_enable=YES #所有系統(tǒng)用戶都映射成guest用戶
guest_username=ftpuser #配合上面選項才生效,指定guest用戶
local_root=/ftproot #guest用戶登錄后所在的目錄

FTP(vsftpd) for CentOS7

2.7 禁錮系統(tǒng)用戶

2.7.1 禁錮所有系統(tǒng)用戶在其家目錄中

#將前面的#去掉,然后重啟服務
chroot_local_user=YES #禁錮系統(tǒng)用戶在其家目錄中, 默認NO,即不禁錮

[root@CentOS7-01 ~]#systemctl restart vsftpd

2.7.2 禁錮或不禁錮特定的系統(tǒng)用戶在其家目錄中,與上面設置功能相反

# 修改配置文件,然后重啟服務
chroot_list_enable=YES #去掉前面的#即可
chroot_list_file=/etc/vsftpd/chroot_list #同上,該文件需手工創(chuàng)建

[root@CentOS7-01 ~]#systemctl restart vsftpd
# 注意
1)當chroot_local_user=YES時,則chroot_list中用戶不禁錮
2)當chroot_local_user=NO時,則chroot_list中用戶禁錮

FTP(vsftpd) for CentOS7

2.7.3 出現的錯誤:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

# 當用戶被禁錮在其家目錄的情況下,登錄會出現上面的錯誤,因為vsftpd安全檢查原因,根目錄不能用寫權限,但子目錄可以有,解決的方法有以下兩種
1)去掉根目錄的寫權限
chmod -w /home/user
2)在配置文件最后添加如下配置,然后重啟
allow_writeable_chroot=YES

2.8 日志

# wu-ftp日志:默認啟用
xferlog_enable=YES 啟用記錄上傳下載日志,此為默認值
xferlog_std_format=YES 使用wu-ftp日志格式,此為默認值
xferlog_file=/var/log/xferlog 可自動生成, 此為默認值

# 上面的日志格式太簡單,不易讀,所以使用vsftpd日志
# vsftpd日志:默認不啟用
dual_log_enable=YES #在配置文件最后加上此配置,然后重啟服務
vsftpd_log_file=/var/log/vsftpd.log #加了上面的配置后,該文件會自動生成。

2.9 提示信息

2.9.1 登錄提示信息

ftpd_banner=Welcome to hechunping FTP service. #先將前面的#注釋去掉,然后修改為自定義的提示信息
banner_file=/etc/vsftpd/ftpbanner.txt #也可以加上此項配置,將提示信息寫到自定義配置文件中
[root@CentOS7-01 ~]#vim /etc/vsftpd/ftpbanner.txt
^[[31m非法用戶,禁止登錄^[[0m

#操作提示:先按crtl+v,然后不松開再按[

FTP(vsftpd) for CentOS7

2.9.2 目錄訪問提示信息

dirmessage_enable=YES #默認值,不用動
message_file=.message #在配置文件最后面加上,然后將這個文件建在要訪問的目錄中,比如用戶hechunping的家目錄/home/hechunping
[root@CentOS7-01 ~]#vim /home/hechunping/.message
^[[32m這是hechunping的家目錄^[[0m

FTP(vsftpd) for CentOS7

2.10 PAM模塊實現用戶訪問控制

[root@CentOS7-01 ~]#vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd #此為默認值

# pam配置文件
/etc/pam.d/vsftpd
# 在下面這個配置文件的用戶將被拒絕登錄ftp服務器
[root@CentOS7-01 ~]#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

2.11 是否啟用控制用戶登錄的列表文件

userlist_enable=YES #默認值,不用動
userlist_deny=YES(默認值) #黑名單,不提示口令,NO為白名單
userlist_file=/etc/vsftpd/users_list #此為默認值,在此文件中的用戶會被直接拒絕,甚至不會提示輸入密碼

2.12 指定運行vsftpd服務的用戶身份

nopriv_user=nobody #此為默認值

2.13 連接數限制

max_clients=number #最大并發(fā)連接數,默認2000
max_per_ip=number #每個IP同時發(fā)起的最大連接數,默認50

2.14 傳輸速率,字節(jié)/秒

anon_max_rate=0 #匿名用戶的最大傳輸速率,默認為0,不限制
local_max_rate=0 #本地用戶的最大傳輸速率,默認為0,不限制

2.15 連接時間,以秒為單位

connect_timeout=60 #主動模式數據連接超時時長,默認值
accept_timeout=60 #被動模式數據連接超時時長,默認值
data_connection_timeout=300 #數據連接無數據輸超時時長,默認值
idle_session_timeout=300 #無命令操作超時時長,默認值

2.16 優(yōu)先以文本方式傳輸

ascii_upload_enable=YES #默認為NO
ascii_download_enable=YES #同上

2.17 實現基于SSL的FTPS

# 查看是否支持SSL
[root@CentOS7-01 certs]#ldd `which vsftpd` | grep libssl.so
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f7dfd1fa000)

# 創(chuàng)建自簽名證書
[root@CentOS7-01 ~]#cd /etc/pki/tls/certs/
[root@CentOS7-01 certs]#make vsftpd.pem
umask 77 ; \
PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
/usr/bin/openssl req -utf8 -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2  ; \
cat $PEM1 >  vsftpd.pem ; \
echo ""    >> vsftpd.pem ; \
cat $PEM2 >> vsftpd.pem ; \
rm -f $PEM1 $PEM2
Generating a 2048 bit RSA private key
.............................................+++
........................+++
writing new private key to '/tmp/openssl.SOcSWK'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:abc
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:hechunping
Email Address []:
[root@CentOS7-01 certs]#ls
ca-bundle.crt        make-dummy-cert  renew-dummy-cert
ca-bundle.trust.crt  Makefile         vsftpd.pem

# 配置vsftpd服務支持SSL,然后重啟服務,再使用客戶端工具FileZilla測試
[root@CentOS7-01 certs]#vim /etc/vsftpd/vsftpd.conf
ssl_enable=YES # 默認為NO
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem #指定證書位置
[root@CentOS7-01 certs]#systemctl restart vsftpd

FTP(vsftpd) for CentOS7

3 vsftpd虛擬用戶

# a.什么是虛擬用戶
1)所有虛擬用戶會統(tǒng)一映射為一個指定的系統(tǒng)賬號:訪問共享位置,即為此系統(tǒng)賬號的家目錄
2)各虛擬用戶可被賦予不同的訪問權限,通過匿名用戶的權限控制參數進行指定
# b.虛擬用戶賬號的存儲方式
1)文件:編輯文本文件,此文件需要被編碼為hash格式,奇數行為用戶名,偶數行為密碼
db_load -T -t hash -f vusers.txt vusers.db
2)關系型數據庫中的表中:實時查詢數據庫完成用戶認證
vsftpd支持MySQL庫:pam要依賴于pam-mysql
/lib64/security/pam_mysql.so
/usr/share/doc/pam_mysql-0.7/README

3.1 實現基于文件驗證的vsftpd虛擬用戶

3.1.1 創(chuàng)建用戶數據庫文件

[root@CentOS7-01 ~]#cat /etc/vsftpd/vusers.txt 
hechunping
123.com
xiaoming
123.com
[root@CentOS7-01 ~]#cd /etc/vsftpd/
db_load -T -t hash -f vusers.txt vusers.db
[root@CentOS7-01 vsftpd]#chmod 600 vusers.db

3.1.2 創(chuàng)建用戶和訪問FTP目錄

[root@CentOS7-01 vsftpd]#useradd -d /data/ftproot -s /sbin/nologin -r vuser
[root@CentOS7-01 vsftpd]#mkdir -pv /data/ftproot/upload
[root@CentOS7-01 vsftpd]#setfacl -m u:vuser:rwx /data/ftproot/upload

3.1.3 創(chuàng)建pam配置文件

[root@CentOS7-01 vsftpd]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.db

3.1.4 為虛擬用戶建立獨立的配置文件

# a.指定各個用戶配置文件存放的路徑
[root@CentOS7-01 vsftpd]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/

# b.創(chuàng)建各個用戶配置文件存放的路徑
[root@CentOS7-01 vsftpd]#mkdir /etc/vsftpd/vusers.d
[root@CentOS7-01 vsftpd]#cd /etc/vsftpd/vusers.d

# c.創(chuàng)建用戶hechunping的配置文件,允許可讀可寫,其它用戶只讀
[root@CentOS7-01 vusers.d]#cat hechunping 
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

# d.創(chuàng)建用戶xiaoming的配置文件,將其登錄目錄更改為/data/ftproot2
[root@CentOS7-01 vusers.d]#cat xiaoming
local_root=/data/ftproot2
3.1.4.1 測試虛擬用戶hechunping的權限
[root@CentOS7-01 vusers.d]#ll /data/ftproot/upload/
total 0

# 在另一臺主機上用hechunping虛擬用戶登錄
[root@CentOS7-02 ~]#ftp 192.168.7.71
Connected to 192.168.7.71 (192.168.7.71).
220 (vsFTPd 3.0.2)
Name (192.168.7.71:root): hechunping
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,7,71,44,8).
150 Here comes the directory listing.
drwxrwxr-x    2 0        0               6 Dec 23 12:07 upload
226 Directory send OK.
ftp> cd upload
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,7,71,146,66).
150 Here comes the directory listing.
226 Directory send OK.
ftp> !ls
anaconda-ks.cfg  test
ftp> put test
local: test remote: test
227 Entering Passive Mode (192,168,7,71,176,83).
150 Ok to send data.
226 Transfer complete.
ftp> ls
227 Entering Passive Mode (192,168,7,71,108,131).
150 Here comes the directory listing.
-rw-------    1 997      995             0 Dec 23 12:11 test
226 Directory send OK.
# 從上面的結果發(fā)現虛擬用戶hechunping是可讀可寫的
3.1.4.2 測試虛擬用戶xiaoming的權限
[root@CentOS7-01 vusers.d]#ls /data/ftproot2/
file1

# 在另一臺主機上用xiaoming虛擬用戶登錄
[root@CentOS7-02 ~]#ftp 192.168.7.71
Connected to 192.168.7.71 (192.168.7.71).
220 (vsFTPd 3.0.2)
Name (192.168.7.71:root): xiaoming
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,7,71,228,90).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Dec 23 09:43 file1
226 Directory send OK.
ftp> !ls
anaconda-ks.cfg  test
ftp> put test
local: test remote: test
227 Entering Passive Mode (192,168,7,71,106,6).
550 Permission denied.
ftp> cd /etc
550 Failed to change directory.
ftp> get file1
local: file1 remote: file1
227 Entering Passive Mode (192,168,7,71,187,241).
150 Opening BINARY mode data connection for file1 (0 bytes).
226 Transfer complete.
ftp> 
# 從上面的結果來看,虛擬用戶xiaoming不能寫和切換到別的目錄,只能下載指定登錄的目錄中的文件

3.2 實現基于MYSQL驗證的vsftpd虛擬用戶

環(huán)境準備
OS:CentOS7
FTP服務器1臺
數據庫服務器一臺

3.2.1 在數據庫服務器上安裝mysql數據庫

[root@CentOS7-02 ~]#yum –y install mariadb-server
[root@CentOS7-02 ~]#systemctl enable --now mariadb

3.2.2 在數據庫服務上配置數據庫以支持vsftpd服務

# a.建立存儲虛擬用戶信息的數據庫和表
MariaDB [(none)]> create database vsftpd;
MariaDB [(none)]> use vsftpd;
MariaDB [(none)]> CREATE TABLE users ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name CHAR(50) BINARY NOT NULL, password CHAR(48) BINARY NOT NULL );
# b.添加虛擬用戶,為了安全應該使用PASSWORD函數加密其密碼后存儲
MariaDB [vsftpd]> INSERT INTO users(name,password) values('zhangsan',password('123.com'));
Query OK, 1 row affected (0.00 sec)

MariaDB [vsftpd]> INSERT INTO users(name,password) values('lisi',password('123.com'));
Query OK, 1 row affected (0.00 sec)

# c.創(chuàng)建連接vsftpd數據庫的用戶
MariaDB [vsftpd]> grant select on vsftpd.* to vsftpd@'192.168.7.%' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)

MariaDB [vsftpd]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

3.2.3 在FTP服務器上安裝vsftpd和pam_mysql包

# a.安裝vsftpd
[root@CentOS7-01 ~]#yum -y install vsftpd
# b.源碼編譯安裝pam-mysql
1)相關依賴包安裝
[root@CentOS7-01 ~]#yum install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
2)下載和編譯安裝pam-mysql
[root@CentOS7-01 ~]#wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
[root@CentOS7-01 ~]#tar xvf pam_mysql-0.7RC1.tar.gz
[root@CentOS7-01 ~]#cd pam_mysql-0.7RC1
[root@CentOS7-01 pam_mysql-0.7RC1]#./configure --with-pam-mods-dir=/lib64/security
[root@CentOS7-01 pam_mysql-0.7RC1]#make -j `lscpu |awk 'NR==4{print $2}'` && make install
[root@CentOS7-01 pam_mysql-0.7RC1]#ll /lib64/security/pam_mysql.*
-rwxr-xr-x 1 root root    882 Dec 23 17:56 /lib64/security/pam_mysql.la
-rwxr-xr-x 1 root root 141712 Dec 23 17:56 /lib64/security/pam_mysql.so

3.2.4 在FTP服務器上建立pam認證所需文件

[root@CentOS7-01 pam_mysql-0.7RC1]#cat /etc/pam.d/vsftpd.mysql 
auth required pam_mysql.so user=vsftpd passwd=123.com host=192.168.7.72 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=123.com host=192.168.7.72 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

注:以上參考pam_mysql-0.7RC1.tar.gz包的README文檔

crypt加密方式說明:

0 (or "plain") 表示不加密
1 (or "Y") 表示使用crypt(3)函數加密
2 (or "mysql") 表示使用mysql password()函數加密
3 (or "md5") 表示使用md5加密
4 (or "sha1") 表示使用sha1加密

配置字段說明

auth 表示認證
account 驗證賬號密碼正常使用
required 表示認證要通過
pam_mysql.so 該模塊是默認的相對路徑,是相對/lib64/security/路徑而言,也可以寫絕對路徑;后面為給此模塊傳遞的參數
user=vsftpd 登錄mysql的用戶
passwd=123.com 登錄mysql的密碼
host=192.168.7.72 mysql服務器的ip地址
db=vsftpd 指定連接mysql的數據庫名稱
table=users 指定連接數據庫中的表名
usercolumn=name 當做用戶名的字段
passwdcolumn=password 當做用戶名字段的密碼
crypt=2 密碼的加密方式為mysql password()函數加密

3.2.5 建立相應用戶和修改vsftpd配置文件

# a.建立虛擬用戶映射的系統(tǒng)用戶及對應的目錄
[root@CentOS7-01 pam_mysql-0.7RC1]#useradd -d /data/ftproot -s /sbin/nologin -r vuser
# b.拿掉ftp根目錄的寫權限
[root@CentOS7-01 pam_mysql-0.7RC1]#chmod 555 /data/ftproot
mkdir -pv /data/ftproot/{upload,pub}
setfacl –m u:vuser:rwx /data/ftproot/{upload,pub}
# c.確保/etc/vsftpd/vsftpd.conf中已經啟用了以下選項
anonymous_enable=YES
# d.添加下面兩項
guest_enable=YES             
guest_username=vuser
# e.修改下面一項,原系統(tǒng)用戶將無法登錄
pam_service_name=vsftpd.mysql
# f.啟動并設置開機自啟vsftpd服務
[root@CentOS7-01 pam_mysql-0.7RC1]#systemctl enable --now vsftpd

3.2.6 在FTP服務器上配置虛擬用戶具有不同的訪問權限

vsftpd可以在配置文件目錄中為每個用戶提供單獨的配置文件以定義其ftp服務訪問權限,每個虛擬用戶的配置文件名同虛擬用戶的用戶名。配置文件目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可

# a.配置vsftpd虛擬用戶使用的配置文件目錄
[root@CentOS7-01 pam_mysql-0.7RC1]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/
# b.創(chuàng)建所需要的目錄,并為虛擬用戶提供配置文件
[root@CentOS7-01 pam_mysql-0.7RC1]#mkdir /etc/vsftpd/vusers.d/
[root@CentOS7-01 pam_mysql-0.7RC1]#cd /etc/vsftpd/vusers.d/
[root@CentOS7-01 pam_mysql-0.7RC1]#touch zhangsan lisi
[root@CentOS7-01 vusers.d]#ls
lisi  zhangsan
# c.配置虛擬用戶的訪問權限
[root@CentOS7-01 vusers.d]#cat zhangsan 
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

[root@CentOS7-01 vusers.d]#cat lisi
local_root=/data/ftproot2
3.2.6.1 測試虛擬用戶zhangsan的權限
[root@CentOS7-01 ftproot]#tree -d /data/ftproot
/data/ftproot
├── pub
└── upload

2 directories

# 在另一臺主機上用虛擬用戶zhangsan登錄
[root@CentOS7-02 ~]#ftp 192.168.7.71
Connected to 192.168.7.71 (192.168.7.71).
220 (vsFTPd 3.0.2)
Name (192.168.7.71:root): zhangsan
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,7,71,107,185).
150 Here comes the directory listing.
drwxrwxr-x    2 0        0               6 Dec 23 13:13 pub
drwxrwxr-x    2 0        0               6 Dec 23 13:32 upload
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> !ls
anaconda-ks.cfg  file1  test
ftp> ls
227 Entering Passive Mode (192,168,7,71,129,21).
150 Here comes the directory listing.
226 Directory send OK.
ftp> put test
local: test remote: test
227 Entering Passive Mode (192,168,7,71,241,98).
150 Ok to send data.
226 Transfer complete.
# 從上面的結果可以發(fā)現,虛擬用戶zhangsan具有讀寫權限
3.2.6.2 測試虛擬用戶lisi的權限
[root@CentOS7-01 ~]#tree /data/ftproot2/
/data/ftproot2/
└── file1

0 directories, 1 file

# 在在另一臺主機上用虛擬用戶lisi登錄
[root@CentOS7-02 ~]#ftp 192.168.7.71
Connected to 192.168.7.71 (192.168.7.71).
220 (vsFTPd 3.0.2)
Name (192.168.7.71:root): lisi
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,7,71,66,122).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Dec 23 09:43 file1
226 Directory send OK.
ftp> !ls
anaconda-ks.cfg  file1  test
ftp> put test
local: test remote: test
227 Entering Passive Mode (192,168,7,71,32,137).
550 Permission denied.
ftp> cd /var
550 Failed to change directory.
ftp> get file1
local: file1 remote: file1
227 Entering Passive Mode (192,168,7,71,180,77).
150 Opening BINARY mode data connection for file1 (0 bytes).
226 Transfer complete.
ftp> 
# 從上面的結果來看,虛擬用戶lisi不能寫和切換到別的目錄,只能下載指定登錄的目錄中的文件

3.3 總結

基于文件和MySQL驗證的vsftpd虛擬用戶的區(qū)別:
# a.基于文件驗證的vsftpd虛擬用戶需要手工創(chuàng)建存放用戶名和密碼的文本文件,不方便管理,并且該文件被編碼為hash格式之后還能看到相關的信息
[root@CentOS7-01 ~]#cat /etc/vsftpd/vusers.db
a        
?23.comxiaoming 
 ?cRэh^123.comhechunping
# b.基于MySQL驗證的vsftpd虛擬用戶不用事先創(chuàng)建相關的文本文件,直接在相關的用戶表使用SQL語句創(chuàng)建即可,維護起來更加方便,并且密碼是使用mysql password()函數加密過的,更加安全。推薦使用方式

分享文章:FTP(vsftpd)forCentOS7
當前URL:http://weahome.cn/article/jhgsjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部