相关疑难解决方法(0)

为什么为我的服务创建的文件设置只读属性(有时)?

注意:这是对这个问题的完全重写。我之前曾将一些 ACL 问题与我正在寻找的问题混为一谈,这可能就是没有答案的原因。

我有一个 Windows 服务,它使用标准的打开/关闭/写入例程来写入日志文件(它从管道读取内容并将其填充到日志中)。每天午夜打开一个新的日志文件。系统是Windows XP Embedded。

该服务作为本地系统服务运行(用户为 NULL 的 CreateService)。

当服务最初启动时,它会创建一个日志文件并毫无问题地写入其中。此时一切正常,您可以毫无问题地重新启动服务(或计算机)。

但是,在午夜(当天更改时),该服务会创建一个新的日志文件并写入其中。有趣的是,这个新的日志文件设置了“只读”标志。这是一个问题,因为如果服务(或计算机)重新启动,服务将无法再打开文件进行写入。

以下是已经发生问题的系统的相关信息:

 Directory of C:\bbbaudit

09/16/2009  12:00 AM    <DIR>          .
09/16/2009  12:00 AM    <DIR>          ..
09/16/2009  12:00 AM               437 AU090915.ADX
09/16/2009  12:00 AM                62 AU090916.ADX

attrib c:\bbbaudit\*
A          C:\bbbaudit\AU090915.ADX <-- old log file (before midnight)
A    R     C:\bbbaudit\AU090916.ADX <-- new log file (after midnight)

cacls output:
C:\ BUILTIN\Administrators:(OI)(CI)F 
    NT AUTHORITY\SYSTEM:(OI)(CI)F 
    CREATOR OWNER:(OI)(CI)(IO)F 
    BUILTIN\Users:(OI)(CI)R 
    BUILTIN\Users:(CI)(special access:)
                      FILE_APPEND_DATA

    BUILTIN\Users:(CI)(IO)(special access:)
                          FILE_WRITE_DATA

    Everyone:R 

C:\bbbaudit BUILTIN\Administrators:(OI)(CI)F 
            NT AUTHORITY\SYSTEM:(OI)(CI)F 
            CFN3\Administrator:F 
            CREATOR OWNER:(OI)(CI)(IO)F …
Run Code Online (Sandbox Code Playgroud)

windows acl

3
推荐指数
1
解决办法
882
查看次数

标签 统计

acl ×1

windows ×1