centos7 安裝vsftpd和配置以及虛擬用戶權限分配

系統環境 centos7.3 版本linux

ftp 根目錄 : /data/ftp
ftp 配置文件目錄:/etc/vsftpd
ftp 虛擬用戶權限配置文件目錄:/etc/vsftpd/vuser_config數據庫

實現目標:vim

1,匿名用戶能夠登陸,可是不能訪問虛擬用戶的宿主目錄,只能訪問共享目錄
2,虛擬用戶對本身的宿主目錄有任何權限,且只能在本身宿主目錄中操做centos


1,安裝vsftpd和db_load加密工具app


1tcp

2ide

3工具

4測試

5ui

6

#要關閉selinux 和防火牆或者開啓容許的端口,否則訪問會有問題

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #修改配置文件

setenforce 0  #臨時關閉

systemctl stop firewalld.service #關閉防火牆

 

yum install vsftpd db4-utils -y

2,建立本地用戶[用於映射虛擬用戶]


1

2

3

4

5

6

7

#創建ftp用戶目錄

mkdir -p /data/ftp

#建立用戶

useradd -d /data/ftp vuser -s /sbin/nologin

更改權限和主組權限

chmod 755 /data/ftp

chown vuser.root /data/ftp

3,建立虛擬用戶[用戶和密碼]文件


1

2

3

4

5

vim /etc/vsftpd/vuser-list

jin [用戶名]

123456 [密碼]

jinc [用戶名]

123123 [密碼]

4,加密用戶密碼文件生成數據庫文件


1

2

3

4

cd /etc/vsftpd/

db_load -T -t hash -f ./vuser-list ./vuser-list.db

chmod 600 vuser-list.db

 

5,建立PAM認證文件


1

2

3

4

vim /etc/pam.d/vuser.vu

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list    #注意64位系統寫/lib64這個路徑,32位系統要寫成/lib,下同!

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser-list

 

6,修改配置文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

vim /etc/vsftpd/vsftpd.conf

 

#容許匿名用戶訪問

anonymous_enable=yes

 

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

 

listen=NO

listen_ipv6=YES

 

#修改ftp默認目錄到/data/ftp下面

chroot_local_user=YES

local_root=/data/ftp

anon_root=/data/ftp

 

#pam認證文件

pam_service_name=vuser.vu

 

#虛擬用戶權限配置目錄

user_config_dir=/etc/vsftpd/vuser_config

 

userlist_enable=YES

tcp_wrappers=YES

allow_writeable_chroot=YES

one_process_model=NO

 

#開啓虛擬用戶

guest_enable=YES

guest_username=vuser

 

重啓vsftpd服務

systemctl restart vsftpd.service

7,建立虛擬用戶[權限]配置文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

cd /etc/vsftpd/vuser_config

vim jin [有全部權限]

local_root=/data/ftp/jin #設置登陸後禁錮的目錄

write_enable=yes #開放寫權限

anon_world_readable_only=no #開放下載權限

anon_upload_enable=yes #開放上傳權限

anon_mkdir_write_enable=yes #開放建立目錄的權限

anon_other_write_enable=yes #開放刪除和重命名的權限

 

vim jinc [只有上傳下載的權限]

local_root=/data/ftp/jinc

anon_upload_enable=yes

anon_world_readable_only=no

 

8,更改虛擬用戶目錄權限

1

2

3

#若是不更改的話,匿名用戶是能夠訪問到的

chmod 700 jin

chmod 700 jinc

9,訪問測試:[先在用戶文件夾中建個測試的文件夾或文件,方便識別]

匿名訪問

登陸jin 用戶訪問:

登陸jinc 用戶訪問:


錯誤1:226 Transfer done (but failed to open directory)
解決:selinux 和防火牆致使

錯誤2:500 OOPS: vsftpd: refusing to run with writable root inside chroot()解決:配置文件中加入 allow_writeable_chroot=YES 針對標準vsftpd(standonly)模式, 而後重啓ftp

相關文章
相關標籤/搜索