Windows站点权限统一配置:一次设定,全域生效
|
去年高考那周,我们三个人蹲在IDC机房旁边那个没空调的临时工位上改权限——不是改IIS应用池,是Windows文件系统ACL。对,就是那个右键属性-安全-高级-添加用户-勾选‘遍历文件夹’再点确定的流程。你懂的,那种点了十次弹出“拒绝访问”、查了五遍组策略还没搞清谁继承了谁的流程。 起因是活动页上线前2小时,设计突然甩来个新需求:所有静态资源路径必须加一层 /gaokao2023/ 前缀。后端说“不接”,CDN说“不配”,运维说“要改站点绑定和物理路径映射”。最后我抄起键盘改了两行web.config,把里那串自定义Handler全删了——然后发现,连favicon.ico都403了。控制台报错第三行写着:“Access is denied. (0x80070005)”,不是HTTP状态码,是CLR底层扔出来的HRESULT。 会议室的白板没擦干净,上次写的GPO刷新周期还粘着半截蓝色笔迹;有人端着杯子站了很久,水汽在玻璃杯壁上结了一圈雾,但没人去碰投影仪遥控器;键盘上Q键掉了,胶印还在,我左手拇指一直无意识蹭那块空凹槽,像在摸一块旧伤疤。你说统一配置?我试过用icacls批处理一键推,结果推到某台Win2016机器上直接把IIS_IUSRS组权限给覆盖了,整个后台系统打不开——日志里全是Application Pool ‘AdminConsole’ is being automatically disabled… 你猜是谁在背后走过碰了椅子?是测试负责人,他拎着笔记本经过时把我的机械键盘支架撞歪了3度,回车键比平时高2mm,按下去卡顿半秒。 “一次设定,全域生效”?呵。我手抖点错一次,三台Web服务器上的静态资源目录立刻开始分家:A机认的是DOMAIN\\IIS_IUSRS,B机还在吃本地Users组缓存,C机干脆只认S-1-5-32-573这个硬编码SID——因为上周某次热补丁安装,把本地安全策略数据库刷成了只读模式,重启都不管用。你翻构建日志第1478行就能看到那条红字警告:“Security descriptor could not be set: ERROR_INVALID_PARAMETER”,但没人告诉你,它其实是在抱怨你试图往NTFS压缩卷上塞一个带通配符的ACE。这不是bug,是NTFS自己记性太差。 不是我不想统一。我把PowerShell脚本写到第七版:先Get-Acl,再Compare-Object判断inheritanceFlag是否被篡改,再用Set-Acl强制重置dacl。跑完第一轮,监控告警响了——某台机器CPU持续98%,任务管理器里process explorer一拉,32个powershell.exe子进程全卡在Get-ChildItem -Recurse里,因为其中一台盘是移动硬盘挂载的E:\\,上面堆着七年前的毕业照备份,文件名里带emoji。你不能笑,真有。那个盘现在还插在测试机型号HP Z230那台机器上,竖着的显示器底下压着一张没撕完的贴纸,印着“2016级校庆捐赠纪念”。 我承认这事没法靠脚本兜底。ACL这玩意儿就像老式电闸,合上听着响、看着亮,但里面铜片氧化没氧化、触点松没松,得用手拧螺丝的时候才摸得出来。你改完一个目录的安全选项卡,点确定那一刻,NTFS确实记住了——可IIS不会主动去 reload 它的worker进程缓存的token。你得手动回收应用池,或者等下一个匿名请求触发token refresh,中间那几秒,就是首屏转圈、按钮点了没反应、控制台一片红的真空期。那天高考查分页面刚切流量,就卡在这几秒里。用户刷不出来,客服电话爆了,产品经理冲进来说“能不能把静态资源全扔CDN里”,我说“行啊,那你告诉我怎么让CDN识别Windows AD域账号里的OU层级嵌套权限”。他转身走了,外卖到了没人去拿,塑料袋在工位隔板上滴了两分钟水。 所以现在我干的事很土:每上线一个新站点,不管是不是官网/活动页/中台页面,都手动去每台Windows Web服务器上跑一遍同样的三步:a)进c:\\inetpub\\wwwroot,右键-属性-安全-高级,确认“禁用继承”下面那排小方框都是灰色的;b)点“添加”,输IIS_IUSRS,点两次检查名称;c)勾选“遍历文件夹/运行文件”“读取数据/列出文件夹内容”“读取属性”三项,不点“替换子容器和对象的所有者”,绝对不点。做完,我截图存OneDrive,命名格式是[日期]-[IP]-[目录路径]-acl.jpg,不发邮件,不走Jira,不录操作视频——怕审计说“不符合自动化规范”。
文章配图,仅供参考 下一步?下周约AD组同事喝咖啡,不是聊LDAP同步策略,是问他借个域管理员账号,就五分钟,让我把那段ACL模板直接打进GPO计算机策略里,路径填HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList——不为别的,就为了让下次有人动注册表里那串DefaultUserEnvironmentPath,至少ACL能跟着profile一起滚。当然,前提是他答应不看我电脑屏幕右下角弹出的那个未读Teams消息,标题是:“紧急:考生查询页返回503,请速响应”。(编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Windows嵌入式开发:CSS工程师的环境配置与权限指南
Windows站点搭建中90%运维忽略的3大安全断点
Windows数据科学环境搭建:15年网安工程师避坑指南