创建本地用户账户
# 创建用户组
net localgroup FTPUsers /add
# 创建用户
net user ftpuser1 "密码" /add
net user ftpuser2 "密码" /add
# 将用户加入组
net localgroup FTPUsers ftpuser1 /add
net localgroup FTPUsers ftpuser2 /add
准备目录结构
D:\FTPRoot\
├── LocalUser\ # 必须的名称
│ ├── ftpuser1\ # 用户名目录
│ └── ftpuser2\ # 用户名目录
└── Public\ # 匿名访问目录(可选)
创建 FTP 站点
D:\FTPRoot配置身份验证和授权
ftpuser1, ftpuser2 或组:FTPUsers配置用户隔离
准备 AD 用户
目录结构
D:\FTPRoot\
├── 域名或NetBIOS名\
│ └── 用户名目录\
└── Public\
例如:D:\FTPRoot\mydomain.com\ftpuser1
配置 FTP 站点
user@domain.com 或 domain\user# 为每个用户目录设置权限
icacls "D:\FTPRoot\LocalUser\ftpuser1" /grant "ftpuser1:(OI)(CI)F"
icacls "D:\FTPRoot\LocalUser\ftpuser2" /grant "ftpuser2:(OI)(CI)F"
# 设置根目录权限
icacls "D:\FTPRoot" /grant "SYSTEM:(OI)(CI)F"
icacls "D:\FTPRoot" /grant "Administrators:(OI)(CI)F"
在 IIS 管理器中:
# 打开防火墙端口
netsh advfirewall firewall add rule name="FTP Server" dir=in action=allow protocol=TCP localport=21
netsh advfirewall firewall add rule name="FTP Passive" dir=in action=allow protocol=TCP localport=50000-51000
# 如果使用主动模式,还需要开放 20 端口
使用以下命令测试:
ftp server_ip
# 输入用户名和密码
连接被拒绝
登录失败
无法写入文件
完成以上步骤后,每个用户登录 FTP 时只能访问自己的目录,实现用户隔离。