6.1 網絡文件共享:FTP

FTP工作原理

     FTP使用2個TCP端口,首先是建立一個命令端口(控制端口),然後再產生一個數據端口。ftp工作在主動模式使用tcp 21 和 20 兩個端口,而工作在被動模式會工作在大於1024隨機端口。

主動模式(port)

    主動方式的FTP是這樣的:客戶端從一個任意的非特權端口N(N>1024)連接到FTP服務器的命令端口,即tcp 21端口。緊接着客戶端開始監聽端口N+1,併發送FTP命令“port N+1”到FTP服務器。最後服務器會從它自己的數據端口(20)連接到客戶端指定的數據端口(N+1),這樣客戶端就可以和ftp服務器建立數據傳輸通道了。

針對FTP服務器的防火牆來說,必須允許以下通訊才能支持主動方式FTP:
1、客戶端口>1024端口到FTP服務器的21端口 (入:客戶端初始化的連接 S<-C)
2、FTP服務器的21端口到客戶端>1024的端口(出:服務器響應客戶端的控制端口 S->C)
3、FTP服務器的20端口到客戶端>1024的端口(出:服務器端初始化數據連接到客戶端的數據端口 S->C)

4、客戶端>1024端口到FTP服務器的20端口(入:客戶端發送ACK響應到服務器的數據端口 S<-C)

被動模式(pasv)

    在被動方式FTP中,命令連接和數據連接都由客戶端。當開啓一個FTP連接時,客戶端打開兩個任意的非特權本地端口(N >1024和N+1)。第一個端口連接服務器的21端口,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許服務器來回連它的數據端口,而是提交 PASV命令。這樣做的結果是服務器會開啓一個任意的非特權端口(P >1024),併發送PORT P命令給客戶端。然後客戶端發起從本地端口N+1到服務器的端口P的連接用來傳送數據。

對於服務器端的防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:
1、客戶端>1024端口到服務器的21端口(入:客戶端初始化的連接 S<-C)
2、服務器的21端口到客戶端>1024的端口(出:服務器響應到客戶端的控制端口的連接 S->C)
3、客戶端>1024端口到服務器的大於1024端口(入:客戶端初始化數據連接到服務器指定的任意端口 S<-C)

4、服務器的大於1024端口到遠程的大於1024的端口(出:服務器發送ACK響應和數據到客戶端的數據端口 S->C)

    狀態碼

1XX:信息 125:數據連接打開
2XX:成功類狀態 200:命令OK 230:登錄成功
3XX:補充類 331:用戶名OK
4XX:客戶端錯誤 425:不能打開數據連接
5XX:服務器錯誤 530:不能登錄

    用戶認證

匿名用戶:ftp,anonymous,對應Linux用戶ftp
系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow

虛擬用戶:特定服務的專用用戶,獨立的用戶/密碼文件

FTP服務搭建

    使用 vsftpd 提供 ftp 服務。

[root@CentOS74 ~]# yum install vsftpd

匿名用戶(映射爲系統用戶ftp )共享文件位置:/var/ftp
系統用戶共享文件位置:用戶家目錄
虛擬用戶共享文件位置:爲其映射的系統用戶的家目錄

    修改 vsftpd 配置,配置文件存放在 /etc/vsftpd/vsftpd.conf

    服務配置

命令端口:listen_port=21

主動模式端口:ftp_data_port=20

被動模式端口範圍:pasv_min_port=6000        pasv_max_port=6010(0爲隨機分配)
linux客戶端默認使用被動模式,windows 客戶端默認使用主動模式。

使用當地時間:use_localtime=YES(默認爲NO,使用GMT)

啓用記錄上傳下載日誌:xferlog_enable=YES

記錄wu-ftp格式日誌:xferlog_std_format=YES

日誌文件存放路徑:xferlog_file=/var/log/xferlog

記錄vsftpd格式日誌:dual_log_enable=YES

日誌文件存放路徑:vsftpd_log_file=/var/log/vsftpd.log

登錄提示信息:ftpd_banner=“welcome to mage ftp server"(高優先級)

登錄提示信息文件:banner_file=/etc/vsftpd/ftpbanner.txt

目錄訪問提示信息:dirmessage_enable=YES

目錄訪問提示信息存放文件:message_file=.message(在對應文件夾裏)

    匿名用戶配置

支持匿名用戶:anonymous_enable=YES

匿名用戶略過口令檢查:no_anon_password=YES

只能下載權限比444大的文件:anon_world_readable_only=YES

匿名上傳文件:anon_upload_enable=YES

匿名上傳目錄:anon_mkdir_write_enable=YES

可刪除和修改上傳的文件:anon_other_write_enable=YES

ftp> put anaconda-ks.cfg        #當開啓匿名上傳後,發現還是無法上傳文件
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (192,168,30,74,176,212).
550 Permission denied.          #權限被拒絕,原因是目標文件夾對ftp用戶沒有寫權限
[root@CentOS74 ftp]# setfacl -m u:ftp:rwx /var/ftp/pub/   #對ftp用戶通過acl授權
[root@CentOS74 ftp]# getfacl /var/ftp/pub/
getfacl: Removing leading '/' from absolute path names
# file: var/ftp/pub/
# owner: root
# group: root
user::rwx
user:ftp:rwx    #ftp用戶對目錄/var/ftp/pub/擁有讀寫執行權限
group::r-x
mask::rwx
other::r-x
ftp> put anaconda-ks.cfg        #上傳文件
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (192,168,30,74,194,80).
150 Ok to send data.
226 Transfer complete.
1433 bytes sent in 0.000365 secs (3926.03 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,30,74,88,235).
150 Here comes the directory listing.
-rw-------    1 14       50           1433 Jun 26 12:19 anaconda-ks.cfg
226 Directory send OK.

指定匿名上傳文件的umask:anon_umask=077

上傳文件時更改所有者:chown_uploads=YES

指定上傳文件默認的所有者:chown_username=jiangbowen

指定上傳文件默認的權限:chown_upload_mode=0644

[root@CentOS74 pub]# ll
total 4
-rw------- 1 ftp ftp 1433 Jun 26 20:19 anaconda-ks.cfg
ftp> put test 
local: test remote: test
227 Entering Passive Mode (192,168,30,74,113,195).
150 Ok to send data.
226 Transfer complete.
[root@CentOS74 pub]# ll
total 0
-rw-r--r-- 1 jiangbowen ftp 0 Jun 26 20:36 test   #所有者和權限修改爲配置文件中的定義

    系統用戶配置

所有系統用戶都映射成guest用戶:guest_enable=YES

指定guest用戶:guest_username=ftpuser

[root@CentOS74 pub]# useradd -d /data/ftp ftpuser
[root@CentOS74 pub]# chmod 555 /data/ftp/    #根目錄不能有寫權限,同時又要訪問根目錄,所以要將權限設置爲555
[root@CentOS74 pub]# ll /data/ftp/ -d
dr-xr-xr-x 2 ftpuser ftpuser 74 Jun 26 21:00 /data/ftp/
ftp> ls
227 Entering Passive Mode (192,168,30,74,23,54).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 26 13:00 dir1
226 Directory send OK.
ftp> pwd
257 "/"    #將/data/ftp目錄映射爲根目錄

允許linux用戶登錄:local_enable=YES

允許linux用戶上傳文件:write_enable-YES

指定系統用戶上傳文件的默認權限:local_umask=022

非匿名用戶登錄所在目錄:local_root=/ftproot

[root@CentOS74 ftp]# mkdir /data/ftproot
[root@CentOS74 ftp]# chmod 555 /data/ftproot/
[root@CentOS74 ftp]# touch /data/ftproot/roottest
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (192,168,30,74,64,235).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 26 13:09 roottest   #根目錄爲/data/ftproot/
226 Directory send OK.

禁錮系統用戶:chroot_local_user=YES

Name (192.168.30.74:root): jiangbowen
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.                                                    #開啓禁錮功能後,系統用戶的家目錄就是各自的根
421 Service not available, remote server has closed connection   #jiangbowen用戶的家目錄有寫權限,沒有家目錄也會登陸失敗

禁錮(或不禁錮)列表中的系統用戶:chroot_list_enable=YES(NO)

指定禁錮用戶列表:chroot_list_file=/etc/vsftpd/chroot_list

    登陸與連接配置

使用pam模塊完成用戶認證:pam_service_name=vsftpd

    查看 vsftpd 模塊的配置文件 /etc/pam.d/vsftpd

[root@CentOS74 ftp]# cat /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

    查看 /etc/vsftpd/ftpusers 文件中的用戶

[root@CentOS74 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

啓用控制用戶登錄的列表文件:userlist_enable=YES

userlist 爲黑名單:userlist_deny=YES(NO爲白名單)

用戶列表的存放的路徑:userlist_file=/etc/vsftpd/users_list

[root@CentOS74 pam.d]# 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

    使用 root 用戶登陸 ftp

Name (192.168.30.74:root): root
530 Permission denied.
Login failed.    #登陸失敗

最大併發連接數:max_clients=0

每個IP同時發起的最大連接數:max_per_ip=0(0爲不限制)

vsftpd服務指定用戶身份運行:nopriv_user=nobody

[root@CentOS74 pam.d]# ps aux | grep ftp
root      11920  0.0  0.0  53212   576 ?        Ss   22:27   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      11931  0.0  0.0  55336  1336 ?        Ss   22:30   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
jiangbo+  11932  0.0  0.0  55348   848 ?        S    22:30   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf   #以指定用戶身份運行

匿名用戶的最大傳輸速率:anon_max_rate=0(0爲不限制)

系統用戶的最大傳輸速率:local_max_rate=0

主動模式數據連接超時時長:connect_timeout=60

被動模式數據連接超時時長:accept_timeout=60

數據連接無數據輸超時時長:data_connection_timeout=300

無命令操作超時時長:idle_session_timeout=60

以文本方式上傳數據:ascii_upload_enable=YES(默認二進制)

以文本方式下載數據:ascii_download_enable=YES

UNIX系列系統默認使用二進制傳輸數據,DOS系列系統默認使用文本傳輸數據。

基於SSL的FTPS

(1)創建自簽名證書

    使用 make 腳本自動創建

[root@CentOS74 ~]# cd /etc/pki/tls/certs/
[root@CentOS74 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.21EOKs'
-----
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) []:henan
Locality Name (eg, city) [Default City]:zhengzhou
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:jiangbowen
Email Address []:

    或者使用 openssl 命令手動創建自簽名證書,創建完證書後將證書內容追加至自簽證書內

[root@CentOS74 CA]# (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
.......................+++
......................................+++
e is 65537 (0x10001)
[root@CentOS74 CA]# openssl req -new -x509 -key /etc/pki/CA/private/ftpkey.pem -days 7300 -out /etc/pki/CA/cacert.pem
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) []:HeNan
Locality Name (eg, city) [Default City]:ZhengZhou
Organization Name (eg, company) [Default Company Ltd]:Linux
Organizational Unit Name (eg, section) []:CentOS
Common Name (eg, your name or your server's hostname) []:jiangbowen
Email Address []:

(2)配置 vsftpd 服務支持 SSL

[root@CentOS74 vsftpd]# cat /etc/vsftpd/vsftpd.conf | grep ssl
ssl_enable=YES               #啓用SSL
allow_anon_ssl=NO            #匿名不支持SSL
force_local_logins_ssl=YES   #本地用戶登錄加密
force_local_data_ssl=YES     #本地用戶數據傳輸加密
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem  #證書文件存放路徑

(3)使用 filezilla 登陸 ftp 服務器,linux系統中 ftp 工具不支持加密傳輸

vsftpd虛擬用戶

    所有虛擬用戶會統一映射爲一個指定的系統帳號:訪問共享位置,即爲此係統帳號的家目錄。各虛擬用戶可被賦予不同的訪問權限,通過匿名用戶的權限控制參數進行指定。

基於文件驗證

(1)創建用戶數據庫文件

[root@CentOS74 vsftpd]# cat /etc/vsftpd/vusers.txt   #創建用戶文本,用戶密碼成對出現
jiangbowen
123456
ftpuser
123456
nohome
123456
[root@CentOS74 vsftpd]# db_load -T -t hash -f vusers.txt vusers.db   #使用db_load生成用戶數據庫文件
[root@CentOS74 vsftpd]# chmod 600 vusers.db    #更改數據庫文件權限
[root@CentOS74 vsftpd]# ll vusers.db
-rw------- 1 root root 12288 Jun 28 05:27 vusers.db

(2)創建用戶和訪問 FTP 目錄

[root@CentOS74 vsftpd]# useradd -d /var/ftproot -s /sbin/nologin vuser   #創建本地映射用戶
[root@CentOS74 vsftpd]# chmod 555 /var/ftproot/                          #修改映射用戶及目錄權限,去掉寫權限
[root@CentOS74 vsftpd]# ll -d /var/ftproot/
dr-xr-xr-x 2 vuser vuser 62 Jun 28 05:31 /var/ftproot/
[root@CentOS74 vsftpd]# mkdir /var/ftproot/testdir                       #創建文件夾,用於上傳文件
[root@CentOS74 vsftpd]# setfacl -m u:vuser:rwx /var/ftproot/testdir      #賦予映射用戶讀寫執行的ACL權限
[root@CentOS74 vsftpd]# ll /var/ftproot/
total 0
drwxrwxr-x+ 2 root root 6 Jun 28 05:32 testdir

(3)創建 pam 配置文件,並啓用 pam 模塊

[root@CentOS74 ~]# cat /etc/pam.d/vsftpd.db            #創建pam模塊配置文件
auth required pam_userdb.so db=/etc/vsftpd/vusers      #根據用戶數據庫,使用pam_userdb模塊
account required pam_userdb.so db=/etc/vsftpd/vusers   #控制登陸
[root@CentOS74 ~]# cat /etc/vsftpd/vsftpd.conf | grep pam
pam_service_name=vsftpd.db                             #啓用vsftpd.db
[root@CentOS74 ~]# cat /etc/vsftpd/vsftpd.conf | grep guest
guest_enable=YES      #啓用虛擬用戶
guest_username=vuser  #指定虛擬用戶

(4)創建遠程用戶的獨立配置文件

[root@CentOS74 ~]# cat /etc/vsftpd/vsftpd.conf | grep user_config
user_config_dir=/etc/vsftpd/vusers.d/
[root@CentOS74 ~]# mkdir /etc/vsftpd/vusers.d/

    創建用戶的配置文件,使其可讀可寫

[root@CentOS74 ~]# cat /etc/vsftpd/vusers.d/jiangbowen
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

    創建用戶的配置文件,修改其登陸目錄

[root@CentOS74 ~]# cat /etc/vsftpd/vusers.d/nohome
local_root=/var/nohome       #更改用戶的登陸目錄
[root@CentOS74 ~]# mkdir /var/nohome   #創建對應的目錄
[root@CentOS74 ~]# setfacl -m u:vuser:rwx /var/nohome/   #賦予虛擬用戶權限

    不創建用戶配置文件的話,其權限根據主配置文件中對虛擬用戶的定義

測試三個用戶登陸 ftp 服務器的情況

Name (192.168.30.74:root): jiangbowen    #擁有讀寫權限
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd testdir
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,30,74,252,126).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 27 22:16 ftproot.mark
226 Directory send OK.
ftp> put anaconda-ks.cfg        
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (192,168,30,74,218,239).
150 Ok to send data.            #可以上傳文件,並新建目錄
226 Transfer complete.
1433 bytes sent in 0.0102 secs (140.56 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,30,74,211,178).
150 Here comes the directory listing.
-rw-------    1 1003     1003         1433 Jun 27 22:19 anaconda-ks.cfg
-rw-r--r--    1 0        0               0 Jun 27 22:16 ftproot.mark
226 Directory send OK.
Name (192.168.30.74:root): ftpuser     #沒有單股設置權限,使用默認配置
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd testdir
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,30,74,206,144).
150 Here comes the directory listing.
-rw-------    1 1003     1003         1433 Jun 27 22:19 anaconda-ks.cfg
-rw-r--r--    1 0        0               0 Jun 27 22:16 ftproot.mark
226 Directory send OK.
ftp> put test
local: test remote: test
227 Entering Passive Mode (192,168,30,74,215,168).
550 Permission denied.            #無法上傳文件,權限被拒絕
Name (192.168.30.74:root): nohome    #更改登陸目錄
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"                 #登陸目錄映射爲根
ftp> ls
227 Entering Passive Mode (192,168,30,74,96,172).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 27 22:17 nohome.mark   #成功更改登陸目錄
226 Directory send OK.

基於MySql驗證

(1)安裝必要組件 mariadb 服務器、開發包,pam 模塊開發包

[root@CentOS74 ~]# yum install mariadb-devel pam-devel mariadb-server.x86_64

(2)編譯安裝 pam_mysql 模塊,源碼包需要從網絡上下載

[root@CentOS74 /]# ls /lib64/security/pam_mysql.so
/lib64/security/pam_mysql.so

(3)配置 MySql 數據庫

    創建管理用戶

MariaDB [(none)]> GRANT SELECT ON ftpuser.* TO [email protected] IDENTIFIED BY 'dengniaiwo123';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

    新建虛擬用戶數據庫和用戶列表

MariaDB [(none)]> USE ftpuser;
Database changed
MariaDB [ftpuser]> CREATE TABLE ftpuserlist (id int auto_increment primary key,name char(30),passwd char(50));
Query OK, 0 rows affected (0.02 sec)
MariaDB [ftpuser]> INSERT INTO ftpuserlist(name,passwd) values('ftpuser1',password('123456')),('ftpuser2',password('123456')),('ftpuser3',password('123456'));
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0
[root@CentOS74 /]# mysql -uftpadmin -h192.168.30.74 -pdengniaiwo123   #測試數據庫連接
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select * from ftpuser.ftpuserlist;    #查看能否查找ftpuserlist表
+----+----------+-------------------------------------------+
| id | name     | passwd                                    |
+----+----------+-------------------------------------------+
|  1 | ftpuser1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|  2 | ftpuser2 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|  3 | ftpuser3 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+----+----------+-------------------------------------------+
3 rows in set (0.00 sec)

(4)配置 vsftpd 服務

    根據數據庫信息創建 pam_mysql 模塊的配置文件

[root@CentOS74 vsftpd]# cat /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=ftpadmin passwd=dengniaiwo123 host=192.168.30.74 db=ftpuser table=ftpuserlist usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user=ftpadmin passwd=dengniaiwo123 host=192.168.30.74 db=ftpuser table=ftpuserlist usercolumn=name passwdcolumn=passwd crypt=2 

    crypt:加密方式

0表示不加密
1表示crypt(3)加密
2表示使用mysql password()函數加密
3表示md5加密

4表示sha1加密

    修改主配置文件,與基於文件驗證一樣,只不過將 pam 模塊加載爲 pam_mysql 模塊

[root@CentOS74 vsftpd]# cat /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=ftpadmin passwd=dengniaiwo host=192.168.30.74 db=ftpuser table=ftpuserlist usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user=ftpadmin passwd=dengniaiwo host=192.168.30.74 db=ftpuser table=ftpuserlist usercolumn=name passwdcolumn=passwd crypt=2 
[root@CentOS74 vsftpd]# cat vsftpd.conf | grep vsftpd.mysql
pam_service_name=vsftpd.mysql

測試登陸使用虛擬用戶 ftp 服務器

Name (192.168.30.74:root): ftpuser1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd testdir
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,30,74,70,62).
150 Here comes the directory listing.
-rw-------    1 1003     1003         1433 Jun 27 22:19 anaconda-ks.cfg
-rw-r--r--    1 0        0               0 Jun 27 22:16 ftproot.mark
226 Directory send OK.





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章