ubuntu安裝ftp服務器
1: 安裝vsftpd
~$ sudo apt-get install vsftpd
ubuntu10.10自己裝了,這步省略。
2: 配置vsftpd
2.1 修改vsftpd的配置文件。此類配置文件通常位於 /etc 目錄下。
~$ sudo gedit /etc/vsftpd.conf
原文件中不少指令被註釋,只要啓用部分即可,一下是啓用的命令(配置文件中對每一條都有具體說明)
listen=YES # 服務器監聽
anonymous_enable=YES # 匿名訪問允許
local_enable=YES # 本地主機訪問允許
write_enable=YES # 寫允許
anon_upload_enable=YES
# 匿名上傳允許,默認是NO,嫌麻煩的可以開起來。出了問題我不負責~
anon_mkdir_write_enable=YES # 匿名創建文件夾允許
dirmessage_enable=YES # 進入文件夾允許
xferlog_enable=YES # ftp 日誌記錄允許
connect_from_port_20=YES # 允許使用20號端口作爲數據傳送的端口
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
保存。
2.2 設置ftp相關目錄
安裝完畢後,/srv下會增加一個ftp目錄。同時系統會增加一個名爲ftp的用戶組,可以用~$ sudo cat /etc/shadow 查看, 如 ftp:*:14993:0:99999:7:::。我們在/srv/ftp目錄下創建兩個分別名爲upload和download的目錄,分別用於上傳和下載。接下來我們爲剛纔創建的幾個目錄設置權限,如下:
權限 /srv/ftp /srv/ftp/upload /srv/ftp/download
用戶組(ftp) 讀 讀寫 讀
其他用戶 讀 讀寫 讀
執行命令:
~$ sudo chmod 755 /home/ftp
~$ sudo chmod 777 /home/ftp/upload
~$ sudo chmod 755 /home/ftp/download
如此,一方面我們允許了用戶組ftp訪問/home/ftp (匿名訪問);一方面賦予了用戶組ftp對/srv/ftp/upload的寫權利,因此網絡上的用戶可以方便地上傳文件,但注意,當他們上傳後,上傳的文件只有root對這些文件擁有權限,也就是說這個目錄僅能用於上傳,無法下載其中的文件;此外賦予了用戶組ftp對 /home/ftp/download的讀權利,同時我們拷貝進該目錄下的文件對於用戶組而言通常都有讀權利,因此網絡上的用戶從此目錄下能且僅能下載文件。從而滿足了我們預先的要求。
3:啓動vsftpd
~$ sudo service vsftpd start
查看當前所有進程: ~$ ps -e
2183 ? 00:00:00 vsftpd
至此服務器端vsftp的最基本配置已完成,vsftpd已開啓。(注意你的防火牆配置,作爲簡單試驗可以直接停用防火牆)
當然關閉vsftpd進程只需要執行~$ sudo service vsftpd stop,同時還可以使用命令~$ pgrep vsftpd 來查看進程vsftp是否存在。
4:vsftpd 設置用戶目錄,如果你設置了匿名用戶也可以登錄上傳的話~這個可以省了~
(1) 增加組 sudo groupadd ftpgroup
(2 )修改vsftpd.conf
~$ sudo gedit /etc/vsftpd.conf
將底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
改爲
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
(3) 增加用戶ftpuser並設置其目錄爲/home/nation/ftp/upload
sudo useradd -g ftpgroup -d /home/nation/ftp/upload -M ftpuser
(注:G:用戶所在的組 d:表示創建用戶的自己目錄的位置給予指定
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄)
(4 )設置用戶口令 passwd ftpuser
(5) 編輯chroot_list文件:
sudo gedit /etc/vsftpd.chroot_list
內容爲ftp用戶名,每個用戶佔一行,如:
ftpuser
(6 )重新啓動vsftpd:
sudo service vsftpd start