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