我有一台 Windows Server 2008 R2,它托管一个具有以下文件夹结构的网站:
C:\ 网际网路 wwwroot 我的应用程序 JS 样式
应用程序池标识应该对 JS 和 Styles 文件夹具有写入权限,因为我们会动态生成这些文件夹。到目前为止没有问题。
但是,当部署应用程序的新版本时,这些文件夹会被替换,权限也会消失。有没有办法保留这些特定文件夹中的权限,以确保它们在被替换时不会丢失权限?
谢谢
答案1
创建新文件夹时,它将继承其父文件夹的权限。因此,如果您删除文件夹JS
并Styles
重新创建它们,它们将默认具有与MyApp
文件夹上设置的相同(继承)权限。
更改您的部署解决方案,要么保留这些文件夹并仅更改其内容,要么让部署解决方案重新创建它们并重新明确设置权限。一旦删除文件夹,就没有神奇的方法可以恢复相同的权限。
动态生成 JS 和 CSS 并将其写入磁盘是否是个好主意也值得怀疑。如果您要动态缩小,则只需将结果缓存在内存中,这样就不需要磁盘上的写入权限。
答案2
您可以使用 win7 和 windows 2008 附带的 icacls.exe 记录 ACL 和安全设置。这会将权限记录到纯文本文件中。然后,您可以再次使用 icacls.exe 重新导入文本文件,它会将安全性重置回原来的状态。
语法有点复杂,但确实有效。
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
stores the DACLs for the files and folders that match the name
into aclfile for later use with /restore. Note that SACLs,
owner, or integrity labels are not saved.