必须启用ftp用户隔离并精确配置ntfs权限:在iis中启用“用户名目录”隔离模式,为每个用户创建同名子目录,并仅授予其读、写、列出内容权限,同时禁用匿名访问及全局浏览规则。

在Windows系统中配置FTP服务器时,必须限制每个用户只能访问自己专属目录,否则任意用户登录后可遍历整个磁盘,造成敏感文件泄露或误删。
创建隔离的FTP用户账户
按下 Win + R 输入 compmgmt.msc 回车,打开计算机管理 → 系统工具 → 本地用户和组 → 用户 → 右键“新用户”。
输入用户名(如 ftp_user01),设置强密码,【务必取消勾选“用户下次登录时必须更改密码”】,并勾选“密码永不过期”和“用户不能更改密码”。
重复此操作为每位用户创建独立账户,严禁复用 Administrator 或其他已有系统账户作为 FTP 登录凭据。
启用FTP用户隔离功能
打开 IIS 管理器(inetmgr)→ 左侧展开服务器 → 展开“站点” → 右键你的 FTP 站点 → 选择“编辑用户隔离设置”。
勾选“隔离用户到其主目录”,再选择“用户名目录”模式 → 点击“确定”。
这一步会自动在 FTP 站点物理路径下为每个用户名创建同名子目录(如 C:\inetpub\ftproot\ftp_user01),且用户登录后将被强制锁定在此目录内,无法使用 cd .. 或 cd \ 跳出。
精确配置文件系统权限
方法一:通过资源管理器设置
进入 FTP 站点根目录(如 C:\inetpub\ftproot)→ 右键新建文件夹,命名为与用户名完全一致(如 ftp_user01)→ 右键该文件夹 → “属性” → “安全”选项卡 → “编辑” → “添加” → 输入用户名 → 点击“检查名称”确认 → 确定。
在权限列表中,仅勾选“读取”“写入”“列出文件夹内容”,【绝对不要勾选“完全控制”或“修改”】,点击“应用”。
方法二:命令行快速授权(管理员身份运行cmd)
执行:icacls "C:\inetpub\ftproot\ftp_user01" /grant "ftp_user01":(OI)(CI)RX,W
这条命令赋予用户对自身目录的读、写、遍历权限,并让权限自动继承到所有子文件夹和文件,避免手动逐层设置遗漏。
禁用匿名访问与全局浏览
在 IIS 管理器中,双击你的 FTP 站点 → 打开“FTP 身份验证” → 确保“匿名身份验证”处于“已禁用”状态。
再双击“FTP 授权规则” → 删除所有默认存在的“允许匿名用户”或“允许所有用户”的规则 → 点击右侧“添加允许规则” → 选择“指定的用户”,输入刚创建的用户名 → 勾选“读取”和/或“写入” → 完成。
每添加一个用户授权规则后,必须右键 FTP 站点 → “停止”,再右键 → “启动”,否则新规则不生效。











