创建本地用户账户
# 创建用户组 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
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 时只能访问自己的目录,实现用户隔离。