1.更新檢測(cè)是否有軟件更新
sudo apt-get update;
2.安裝 vsftp
sudo apt-get install vsftpd
3 ftp常用命令
sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop
sudo /etc/init.d/vsftpd restart
4.修改參數(shù)
sudo vim /etc/vsftpd.conf
按i進(jìn)入編輯模式
如下修改:
向文件中添加
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
使文件中的"local_enable=YES"
按esc 輸入:wq保存退出。
下面是一個(gè)比較完整的有中文注釋的設(shè)置:
#這些設(shè)置系統(tǒng)默認(rèn)是開啟的,可以不管
listen=NO
listen_ipv6=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
#下面的就要自定義設(shè)置了,建議系統(tǒng)默認(rèn)的不管,然后復(fù)制下面的
#是否允許匿名訪問,NO為不允許
anonymous_enable=NO
#是否允許本地用戶訪問,就是linux本機(jī)中存在的用戶,YES允許
local_enable=YES
#是否開啟寫模式,YES為開啟
write_enable=YES
#新建文件權(quán)限,一般設(shè)置為022,那么新建后的文件的權(quán)限就是777-022=755
local_umask=022
#是否啟動(dòng)userlist為通過模式,YES的話只有存在于userlist文件中的用戶才能登錄ftp(可以理解為userlist是一個(gè)白名單),NO的話,白名單失效,和下面一個(gè)參數(shù)配合使用
userlist_enable=YES
#是否啟動(dòng)userlist為禁止模式,YES表示在userlist中的用戶禁止登錄ftp(黑名單),NO表示黑名單失效,我們已經(jīng)讓userlist作為一個(gè)白名單,所以無需使用黑名單功能
userlist_deny=NO
#指定哪個(gè)文件作為userlist文件,我們稍后編輯這個(gè)文件
userlist_file=/etc/vsftpd.user_list
#是否限制本地所有用戶切換根目錄的權(quán)限,YES為開啟限制,即登錄后的用戶不能訪問ftp根目錄以外的目錄,當(dāng)然要限制啦
chroot_local_user=YES
#是否啟動(dòng)限制用戶的名單list為允許模式,上面的YES限制了所有用戶,可以用這個(gè)名單作為白名單,作為例外允許訪問ftp根目錄以外
chroot_list_enable=YES
#設(shè)置哪個(gè)文件是list文件,里面的用戶將不受限制的去訪問ftp根目錄以外的目錄
chroot_list_file=/etc/vsftpd.chroot_list
#是否開啟寫模式,開啟后可以進(jìn)行創(chuàng)建文件夾等寫入操作
allow_writeable_chroot=YES
#設(shè)置ftp根目錄的位置,這個(gè)文件我們稍后自己創(chuàng)建
local_root=/var/myftp
5.修改密碼。默認(rèn)創(chuàng)建的ftp用戶名為ftp
更改密碼:
sudo passwd uftp
6.ftp訪問測(cè)試
ftp localhost
注意的一些問題:
匿名ftp的目錄必須要555權(quán)限,否則會(huì)報(bào)錯(cuò)。也就是說該目錄所有者只能有讀取,執(zhí)行的操作。
如果要其他ftp用戶給該文件寫的權(quán)限,請(qǐng)使用577
如果文件權(quán)限找不到問題,請(qǐng)看ftp打開的文件目錄的所有者!
簡(jiǎn)介配置:
在 /etc/vsftd.conf 最后加入
userlist_deny=NO
userlist_enable=NO
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_enable=YES
anon_root=/var/ftp/anon_ftp/
tcp_wrappers=YES
ftp_username=ftp
no_anon_password=YES
anon_world_readable_only=YES
allow_writeable_chroot=YES
開啟一下注釋:
chroot_local_user=YES
給匿名的目錄執(zhí)行一下權(quán)限:(假設(shè)匿名目錄為:/var/ftp/anon_ftp)
sudo chmod -R 577 anon_ftp
sudo chown -R ftp /var/ftp/anon_ftp
重啟vsftp
sudo /etc/init.d/vsftpd restart
測(cè)試
ftp localhost
ftp
#正常情況下,會(huì)進(jìn)入ftp匿名目錄,用命令ls可以查看內(nèi)容
最后強(qiáng)調(diào),給匿名目錄的權(quán)限是:所有者只有讀權(quán)限,其他管理者擁有讀寫權(quán)限
注意:已經(jīng)創(chuàng)建了的目錄,需要?jiǎng)h除后,才會(huì)授予新的權(quán)限,php ftp_mkdir這個(gè)方法,遇到重復(fù)的目錄不會(huì)重新建,也不會(huì)覆蓋原來的權(quán)限。