環(huán)境:
1、Centos 7.3
2、阿里云專(zhuān)有網(wǎng)絡(luò)
安裝
yum install -y vsftpd // 安裝
systemctl start vsftpd.service // 啟動(dòng)vsftpd服務(wù)
ftp權(quán)限配置:
vsftpd 的配置目錄為 /etc/vsftpd,包含下列的配置文件:
1、vsftpd.conf // 主配置文件
2、ftpusers // 禁止訪問(wèn) FTP 服務(wù)器的用戶列表
3、user_list // 用戶訪問(wèn)控制
這里只做簡(jiǎn)單配置,禁止切換目錄。編輯 /etc/vsftpd/vsftpd.conf,找到下面兩處配置并修改:
anonymous_enable=NO (改為NO) // 禁用匿名用戶
chroot_local_user=YES (改為YES) // 禁止切換根目錄
切換目錄權(quán)限配置:
chroot_list_enable=YES/NO(NO)
設(shè)置是否啟用chroot_list_file配置項(xiàng)指定的用戶列表文件。默認(rèn)值為NO。
chroot_list_file=/etc/vsftpd/chroot_list
用于指定用戶列表文件,該文件用于控制哪些用戶可以切換到用戶家目錄的上級(jí)目錄。
chroot_local_user=YES/NO(NO)
用于指定用戶列表文件中的用戶是否允許切換到上級(jí)目錄。默認(rèn)值為NO。
通過(guò)搭配能實(shí)現(xiàn)以下幾種效果:
1、當(dāng)chroot_list_enable=YES,chroot_local_user=YES時(shí),在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。
2、當(dāng)chroot_list_enable=YES,chroot_local_user=NO時(shí),在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。
3、當(dāng)chroot_list_enable=NO,chroot_local_user=YES時(shí),所有的用戶均不能切換到其他目錄。
4、當(dāng)chroot_list_enable=NO,chroot_local_user=NO時(shí),所有的用戶均可以切換到其他目錄。
故上面配置屬于第三種情況,所有用戶不能切換到其他目錄。
如果使用情況1或者情況2時(shí),要在/etc/vsftpd下新建chroot_list文件,配置相關(guān)用戶。
重啟服務(wù):
systemctl restart vsftpd.service
創(chuàng)建一個(gè)用戶 ftpuser
useradd ftpuser
限制用戶 ftpuser只能通過(guò) FTP 訪問(wèn)服務(wù)器,而不能直接登錄服務(wù)器:
usermod -s /sbin/nologin ftpuser
上面兩步可以合二為一:
useradd ftpuser -s /sbin/nologin
為用戶 ftpuser 設(shè)置密碼
方法一:
echo "keenjaan" | passwd ftpuser --stdin
方法二:
passwd ftpuser
輸入兩遍密碼即可
2.5 為用戶分配主目錄
在/var中創(chuàng)建相關(guān)的目錄
mkdir -p /var/ftp/pub
配置主目錄即目錄權(quán)限配置:
/var/ftp // 為主目錄, 該目錄只能讀,不能寫(xiě)和執(zhí)行
/var/ftp/pub // 文件具有讀、寫(xiě)、執(zhí)行權(quán)限
設(shè)置訪問(wèn)權(quán)限
chmod a-w /var/ftp && chmod 777 -R /var/ftp/pub
對(duì)ftp文件:有讀取權(quán)限,沒(méi)有寫(xiě)入權(quán)限。
對(duì)pub文件及其所有子文件:最高權(quán)限,讀寫(xiě),執(zhí)行。
關(guān)于chmod命令:參考這個(gè)連接傳送門(mén)
chmod [-cfvR] [--help] [--version] mode file...
參數(shù) :
mode : 權(quán)限設(shè)定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
u 表示該文件的擁有者[user],
g 表示與該文件的擁有者屬于組(group),
o 表示其他用戶[other],
a 表示這三者皆是[all]。(常用)
+ 表示增加權(quán)限、(常用)
- 表示取消權(quán)限、(常用)
= 表示唯一設(shè)定權(quán)限。
r 表示有可讀取的權(quán)限,
w 表示有可寫(xiě)入的權(quán)限,
x 表示有可執(zhí)行的權(quán)限,
X 表示只有當(dāng)該文件是個(gè)子目錄或者該文件已經(jīng)被設(shè)定過(guò)為可執(zhí)行。
-c : 若該文件權(quán)限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作
-f : 若該文件權(quán)限無(wú)法被更改也不要顯示錯(cuò)誤訊息
-v : 顯示權(quán)限變更的詳細(xì)資料
-R : 對(duì)目前目錄下的所有文件與子目錄進(jìn)行相同的權(quán)限變更 (常用)
--help : 顯示幫助
--version : 顯示版本
r=4,
w=2,
x=1
rwx屬性則4+2+1=7;
rw-屬性則4+2=6;
r-x屬性則4+1=5。
設(shè)置為用戶的主目錄:
usermod -d /var/ftp ftpuser
在阿里云安全組中開(kāi)放21端口號(hào)。
使用FileZilla登錄到ftp報(bào)錯(cuò),553,最終設(shè)置FileZilla傳輸設(shè)置里傳輸模式為主動(dòng),就能正常傳輸了。
到此ftp配置完成。這里有篇關(guān)于ftp配置文章很詳細(xì),傳送門(mén)