本文操作以ubuntu16.0.4版本爲例
安裝
apt-get install vsftpd
配置
安裝完成後,默認會啓動vsftpd服務,配置文件: /etc/vsftpd.conf
匿名訪問
修改配置文件:anonymous_enable=YES
訪問地址: ftp://ip
指定帳戶訪問
- 創建賬戶和用戶主目錄
#先創建ftp目錄
$ sudo mkdir /home/ftpdir
#添加用戶 設置ftp目錄爲用戶的主目錄
$ sudo useradd -d /home/ftpdir -s /bin/bash ftpuser
#設置ftpuser用戶密碼
$ sudo passwd ftpuser
#設置ftp目錄用戶權限
$ sudo chown ftpuser:ftpuser /home/ftpdir
- 添加vsftpd 登錄用戶
#新建文件/etc/vsftpd.user_list,用於存放允許訪問ftp的用戶:
$ sudo touch /etc/vsftpd.user_list
$ sudo vim /etc/vsftpd.user_list
添加:ftpuser 保存後退出
- 修改vsftpd配置文件
#拒絕匿名登錄
anonymous_enable=no
#允許更改文件系統 只讀就設置爲no
write_enable=YES
#啓用日誌 詳細說明上載和下載
xferlog_enable=YES
#輸出日誌文件的名稱
xferlog_file=/var/log/vsftpd.log
#日誌文件以xferlog格式寫入
xferlog_std_format=YES
#YES時限定用戶只能訪問主目錄
chroot_local_user=YES
#YES是作爲例外列表,可以訪問主目錄外的文件 https://blog.csdn.net/bluishglc/article/details/42398811
chroot_list_enable=YES
#包含本地用戶列表文件的名稱
chroot_list_file=/etc/vsftpd.chroot_list
#設置vsftp文件系統格式utf-8
utf8_filesystem=YES
配置信息查詢:http://vsftpd.beasts.org/vsftpd_conf.html
- 重啓啓動vsftps服務
service vsftpd restart
- 訪問 ftp://ip
出現登錄頁面:輸入用戶名/密碼:ftpuser/ftpuser. 即可
擴展
- 修改用戶的主目錄
mkdir /home/ftpdir2
usermod -d /home/ftpdir2 ftpuser
通過ftp訪問時,顯示的內容爲ftpdir2目錄下內容
- 一個用戶多個目錄權限
實現思路是通過文件掛載的方式
你需要的是 訪問的目錄,/data/a ,/data/b
將 vsftpd.conf 中local_root=/home/ftpdir
mkdir /home/ftpdir
mkdir /home/ftpdir/a
mkdir /home/ftpdir/b
將這幾個目錄的權限chown 給你需要設置的ftp用戶,chmod給與權限
#mount –bind是將一個目錄中的內容掛載到另一個目錄上
mount –bind -a rw /data/a /home/ftpdir/a
mount –bind -a rw /data/b /home/ftpdir/b
- 訪問權限的控制
有兩類權限控制
一種是在vsftpd配置文件中 write_enable控制是否只讀,這種權限控制粒度比較大.影響所有的ftp用戶
另一種用戶對目錄的操作權限控制 單用戶目錄權限控制
講解
FTP兩種工作模式:主動模式(Active FTP)和被動模式
在主動模式下,FTP客戶端隨機開啓一個大於1024的端口N向服務器的21號端口發起連接,然後開放N+1號端口進行監聽,並向服務器發出PORT N+1命令。服務器接收到命令後,會用其本地的FTP數據端口(通常是20)來連接客戶端指定的端口N+1,進行數據傳輸。
在被動模式下,FTP庫戶端隨機開啓一個大於1024的端口N向服務器的21號端口發起連接,同時會開啓N+1號端口。然後向服務器發送PASV命令,通知服務器自己處於被動模式。服務器收到命令後,會開放一個大於1024的端口P進行監聽,然後用PORT P命令通知客戶端,自己的數據端口是P。客戶端收到命令後,會通過N+1號端口連接服務器的端口P,然後在兩個端口之間進行數據傳輸。
Linux用戶命令
- 使用命令 useradd 創建用戶
例:useradd user1——創建用戶user1
useradd –e 12/30/2009 user2——創建user2,指定有效期2009-12-30到期
用戶的缺省UID從500向後順序增加,500以下作爲系統保留賬號,可以指定UID,
例:useradd –u 600 user3
- 使用 passwd 命令爲新建用戶設置密碼
例:passwd user1
注意:沒有設置密碼的用戶不能使用。
- 命令 usermod 修改用戶賬戶
例:將用戶 user1的登錄名改爲 u1,
usermod –l u1 user1
例:將用戶 user1 加入到 users組中,
usermod –g users user1
例:將用戶 user1 目錄改爲/users/us1
usermod –d /users/us1 user1
- 使用命令 userdel 刪除用戶賬戶
例:刪除用戶user2
userdel user2
例:刪除用戶 user3,同時刪除他的工作目錄
userdel –r user3
- 查看用戶信息
id命令查看一個用戶的UID和GID, 例:查看user4的id
id user4
finger命令 ——可以查看用戶的主目錄、啓動shell、用戶名、地址、電話等信息
例:finger user4