centos7上簡單安裝ftp服務

2021-10-06 22:48:50 字數 3925 閱讀 9965

安裝:ftp服務:yum -y instal vsftpd

安裝:ftp客戶端:yum -y instal ftp

啟動ftp服務:systemctl start vsvtpd

使用普通使用者(不是root)登入測試:

[root@localhost vsftpd]# ftp localhost

trying ::1...

connected to localhost (::1).

220 (vsftpd 3.0.3)

name (localhost:root): tomcat

331 please specify the password.

password:

230 login successful.

remote system type is unix.

using binary mode to transfer files.

ftp> ls

229 entering extended passive mode (|||60430|)

150 here comes the directory listing.

-rw-r--r--    1 1001     50              0 jun 03 15:09 1.txt

drwxr-xr-x    2 1001     50              6 jun 03 16:04 ftp_in

drwxr-xr-x    2 1001     50              6 jun 03 16:04 ftp_in_bak

226 directory send ok.

測試使用ls和cd命令,可以到tomcat使用者下的任何目錄,這不是我們期望的,只能限定使用者在指定的目錄操作。

[root@localhost data]# vi /etc/vsftpd/vsftpd.conf

chroot_local_user=yes#限制ftp登入使用者只能在local_root指定的目錄內操作

local_root=/data/ftp#指定ftp根目錄

allow_writeable_chroot=yes #指定根目錄寫許可權,否則報500 oops: vsftpd: refusing to run with writable root inside chroot()

#指定chroot_list檔案裡的使用者可以操作local_root以外的目錄,需要指定chroot_list_file配置,這裡不啟用

#chroot_list_enable=yes

# (default follows) 這裡要配合chroot_list_enable使用,指定不限制目錄的使用者,這裡不啟用

#chroot_list_file=/etc/vsftpd/chroot_list

修改/data/ftp目錄操作許可權(這裡視情況給許可權,安裝測試時先用777,避免許可權問題):

chmod -r 777 /data/ftp

重啟ftp服務:

systemctl restart vsftpd

重新登入ftp後就只能在指定的目錄:  /data/ftp 下操作了

處理因selinux攔截ls命令報錯問題:

先啟用selinux

[root@localhost ~]# setenforce 1

ftp> ls #這裡已經報錯

229 entering extended passive mode (|||34974|)

150 here comes the directory listing.

226 transfer done (but failed to open directory). 

關閉 selinux

[root@localhost ~]# setenforce 0

ftp> ls  #關閉selinux後正常

229 entering extended passive mode (|||21252|)

150 here comes the directory listing.

-rw-r--r--    1 1001     50              0 jun 03 15:09 1.txt

drwxr-xr-x    2 1001     50              6 jun 03 16:04 boss_in

drwxr-xr-x    2 1001     50              6 jun 03 16:04 boss_in_bak

226 directory send ok.

檢視selinux有關ftp的規則:

設定啟用ftpd_full_access

setsebool -p ftpd_full_access=on

再登入ftp測試,問題解決。這裡根據實際情況開啟其它規則,如:tftp_home_dir,ftpd_connect_db等。

因配置檔案有寫許可權會導致不能登入:

[root@localhost vsftpd]# ll /etc/vsftpd

total 20

-rw-------. 1 root root    0 jun  3 23:05 chroot_list

-rw-rw-rw-. 1 root root  125 may 14  2019 ftpusers

-rw-------. 1 root root  361 may 14  2019 user_list

-rw-rw-rw-. 1 root root 5154 jun  4 01:24 vsftpd.conf

-rw-rw-rw-. 1 root root  348 may 14  2019 vsftpd_conf_migrate.sh

要保證chroot_list,ftpusers,user_list幾個檔案的其它許可權不能有可寫的許可權2,關於這幾個檔案,檔案頭部有詳細的使用說明。

增加只能ftp登入的使用者,必須要保證/etc/shells裡有/sbin/nologin

如:新增只能ftp登入的使用者:useradd -d /data/ftp -s /sbin/nologin ttm

設定登入密碼:passwd ttm

vi /etc/shells #新增/sbin/nologin,儲存退出即可生效

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

/sbin/nologin

開啟防火牆的情況下,需要開放ftp埠,增加ftp服務,否則遠端機無法連線

firewall-cmd --add-service=ftp --permanent

firewall-cmd --reload

CentOS7安裝FTP服務

centos7下安裝ftp服務參考 1 安裝vsftp 1.1 安裝vsftp,測試安裝的vsftpd的版本是 vsftpd.x86 64 0 3.0.2 11.el7 2 yum y install vsftpd1.2 修改配置檔案 vi etc vsftpd vsftpd.confcp etc ...

CentOS7安裝FTP教程

首先安裝vsftpd yum y install vsftpd 修改配置檔案 vim etc vsftpd vsftpd.conf 是否允許匿名,預設no anonymous enable no 這個設定值必須要為yes 時,在 etc passwd內的賬號才能以實體使用者的方式登入我們的vsftp...

centos7安裝ftp服務

安裝vsftpd root ftp yum install y vsftpd root ftp yum install y epel release安裝db4 utils root ftp yum install y db4 utils1.建立系統賬戶 和虛擬賬戶相關聯的 root ftp user...