rar添加注释和文件引发的rar压缩文件无法下载的问题
/**
作者:慈勤强
Email: cqq1978@Gmail.com
**/
最近与朋友做了一个网站,http://www.up114.com ,这是一个提供网页模板,文档模板和计算机电子书籍
下载的网站,所有的资源加起来有数万个,都是以winrar压缩的rar文件。和其他的下载站点一样,我们在这些
rar文件当中都添加了自己的注释和说明文件。 关于如何批量添加注释和文件的,可以看我的另外一篇文章:
http://blog.csdn.net/cqq/archive/2005/07/15/425423.aspx[url=http://blog.csdn.net/cqq][/url]
昨天下午,花了很长时间,用批处理把这数万个rar文件都填上了注释和说明文件,心里不禁感叹于批处理的
方便和强大。
今天上午,朋友跟我说,有不少用户反映无法下载那些rar压缩文件了,而是弹出 提示输入windows用户
帐号的windows对话框,取消的话,出现ACL权限不足的提示。 初步分析,就是IIS用户IUSR_Computername
这个用户没有对rar文件的访问权限, 而一般我很少对单个的文件设置NTFS 权限,那就应该是rar文件所在的
目录权限不够吧。
终端登录,查看 D:\www\up114\download 目录的NTFS权限(这个目录就是我们所有的rar文件所在的目录),
发现一切正常,IIS用户 IUSR_Up114 对该目录有读取的权限,那为什么有权限仍然无法下载呢? 不解中,
又胡乱看了点别的,仍然没有头绪。 最后,看看该目录下的那些rar文件的权限吧,结果令人惊奇的是,这些rar
文件的权限竟然只有administrator用户有full control权限,而IUSR_UP114这个IIS用户根本就没有权限,
一时间满头雾水,不过总算知道了原因,赶紧把IUSR_UP114这个用户的读取权限加上吧,于是一切都好了,文件
下载也恢复了正常。
可是,这些文件的权限,我根本就没有改过,怎么就会变了呢? 左思右想,最后还是把原因归到了winrar
的头上,因为昨天我只给rar压缩文件添加过注释,并没有对服务器做任何的操作。仔细想想,也确实是那样,
rar.exe 改变了这些rar压缩文件的权限。
因为我的rar.exe文件在 d:\cqq 目录下, 而这个目录只有administrator的完全控制权限,
当我执行批处理的时候,d:\cqq\rar.exe a d:\www\up114\download\a.rar readme.htm (意思就是说给a.rar
文件添加一个文件readme.htm), rar.exe 会在当前目录也就是 d:\cqq 新建一个文件,然后把
a.rar文件里面的文件和要添加的文件readme.htm 放进来,生成一个新的临时文件,而这个文件由于
是在d:\cqq这个目录下生成的,权限都是继承自该目录的权限,也就是只有administrator权限.然后再把这个文件
copy到d:\www\up114\download\目录下,覆盖原来的文件,所以文件的权限自然就发生了改变。
问题终于解决了,不过估计大家也很少会碰到这种问题吧。