温馨提示×

linux ftpserver怎样添加用户

小樊
38
2026-09-02 05:49:51
栏目: 智能运维

在 Linux 上搭建 FTP 服务器(常见如 vsftpd)并添加用户,通常有以下几种方式,下面以 vsftpd(最常用)为例说明。


一、使用系统用户(最简单)

1. 安装 vsftpd

# CentOS / RHEL
yum install vsftpd -y

# Ubuntu / Debian
apt install vsftpd -y

2. 添加 FTP 用户

useradd -m ftpuser
passwd ftpuser

3. 设置 FTP 目录权限

chown -R ftpuser:ftpuser /home/ftpuser

4. 启动 vsftpd

systemctl start vsftpd
systemctl enable vsftpd

✅ 用户可使用:

  • 用户名:ftpuser
  • 密码:你设置的密码
  • 登录路径:/home/ftpuser

二、限制用户只能 FTP,不能登录系统(更安全)

useradd -m -s /sbin/nologin ftpuser
passwd ftpuser

如果 /sbin/nologin 不在 shell 列表:

echo "/sbin/nologin" >> /etc/shells

三、使用虚拟用户(推荐生产环境)

1. 安装依赖

# CentOS
yum install vsftpd pam* db4*

# Ubuntu
apt install vsftpd libpam-pwdfile

2. 创建虚拟用户文件

vim /etc/vsftpd/vuser.txt

内容:

user1
123456
user2
abcdef

3. 生成数据库

db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

4. 配置 PAM

vim /etc/pam.d/vsftpd

清空后写入:

auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

5. 修改 vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_conf

6. 为每个虚拟用户设置目录

mkdir -p /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/user1
local_root=/data/ftp/user1

四、常见问题

FTP 无法登录?

  • 检查防火墙:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
  • SELinux:
setsebool -P ftpd_full_access on

被动模式端口

pasv_min_port=30000
pasv_max_port=31000

如果你告诉我:

  • 使用的 Linux 发行版
  • FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 是否需要 虚拟用户 / 只读 / 多用户隔离

我可以给你一份 精确配置示例

0