linux上配置多用户FTP

公司需要创建两个ftp地址,一个用于存公司教学视频,一个用于存PACS测试图像,分别创建两个用户,并各自指定根目录。
1.创建用户并设置密码

useradd PACS
passwd XXX
useradd teach
passwd XXX
#如果创建错误,需要删除用户
userdel -r PACS

2.安装vsftpd

yum install vsftpd

3.配置
vi /etc/vsftpd/vsftpd.conf
将如下内容拷贝进去,注意修改下面的服务器ip,以及防火墙打开29911-29920的端口(ftp被动模式)

# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
local_root=/home/PACS
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_deny=NO
write_enable=YES
local_umask=077
dirmessage_enable=YES
user_config_dir=/etc/vsftpd/userconfig

xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES

idle_session_timeout=600
data_connection_timeout=120
max_clients=0
max_per_ip=0
listen=YES
#listen_ipv6=YES

pam_service_name=vsftpd
tcp_wrappers=YES

#connect_from_port_20=YES
pasv_enable=yes
pasv_address=118.25.17.17
pasv_min_port=29911
pasv_max_port=29920

seccomp_sandbox=NO

3.添加用户根目录

cd /etc/vsftpd
mkdir userconfig
cd userconfig
touch PACS
touch teach
vi PACS
#填入路径
local_root=/home/PACS/
vi teach
#填入路径
local_root=/home/teach/

4.设置PACS和teach用户可以通过ftp连接的权限

cd /etc/vsftpd
vi  user_list
#填入
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
PACS
teach
#启动vsftpd
systemctl start vsftpd

5.PACS和teach用户除了能登录FTP外发现还能登录主机,这样很不安全,做如下处理让用户只能连ftp不能访问主机

 vi /etc/shells
#ftp会根据/etc/shells这个文件来验证用户是否是有效用户,并阻止那些shell不在/etc/shells里的用户登录
#末尾加上一句,这样登录ftp时可以通过验证
/sbin/nologin
#将PACS用户和teach用户设置为不登录(也可以在一开始创建用户时设置useradd -s /sbin/nologin )
usermod -s /sbin/nologin PACS
usermod -s /sbin/nologin teach

6.然后通过可视化客户端测试,发现可以通过ftp地址118.25.17.17连接进入ftp根目录,至此完成了我们需要的功能。

你可能感兴趣的:(linux上配置多用户FTP)