廢話很少說,直接安裝shell
sudo aptitude install vsftpd
配置目標:一個不能本地登陸的用戶使用密碼登錄ftp,禁止匿名登錄上傳以及下載ubuntu
sudo vim /etc/vsftpd.conf
注析掉如下行的"#"vim
local_enables=YES /* 本地用戶可登錄 */ write_enable=YES /* 用戶可寫 */ local_umask=022 /* 用戶建立文件的默認權限 */ ascii_upload_enable=YES /* 能夠文本方式上傳 */ ascii_download_enable=YES /* 能夠文本方式下載 */ chroot_local_user=YES /* 限制用戶在本身主目錄操做 */
在文本末新增如下行bash
allow_writeable_chroot=YES /* reference point 1 */
由於設置了chroot,所以以上行必須添加,要否則登錄時會提示錯誤ide
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
創建一個用戶專門用於登錄ftp的,爲了達到最精簡的創建,所以使用useradd命令(這也是我撞破頭的一個緣由,有關useradd和adduser的區別,請網上查找)測試
sudo useradd -c "ftp user" -d /srv/ftp/demo -m -U -s /usr/sbin/nologin demo
-c 就是用戶的備註說明 -d 就是指定用戶 主目錄位置(不是創建,是指定) -m 就是創建用戶主目錄,若是沒有 -U 就是創建與用戶名相同的用戶組 -s 就是用戶shell(*************這就是我撞破頭的主要緣由********************)
給用戶設置密碼(這就是我撞破頭的另外一個主要緣由)ui
sudo passwd demo
(也是這個,我一直沒發現我新建的用戶沒有密碼,致使出現500或者530錯誤)spa
根據https://help.ubuntu.com/lts/serverguide/serverguide.pdf 說明,ubuntu server 14.04對shell有嚴格要求,加上vsftp使用pam認證,所以必須修改我新建用戶的shell在容許的範圍,.net
sudo vim /etc/shells
行末添加rest
/usr/sbin/nologin
(也就是這個不斷出現530錯誤,致使我覺得哪裏出錯了)
最後,就是重啓
sudo service vsftpd restart
(vsftpd竟然不是基本服務,bash下tab鍵竟然沒得補全,汗)
最後 ftp localhost 測試一下就能夠了