2

我有一条具有以下权限的路径:

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

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

在此路径中有一个我无法修改或删除的文本文件:我只能追加行。

我想知道如何才能暂时授予对该文件的写入权限,然后返回原始设置。

这是一个日志文件,它变得太大了,所以我想省略旧的行,只保留最近的 1000 行。

但我没有删除行或删除文件的权限。

请帮忙。

先感谢您。

我刚刚读过 CACLS /? 但我不明白如何使用这个命令。

4

1 回答 1

2

我不太确定你想如何解决这个问题。
你为什么不给用户总是修改日志的权利呢?如果管理员需要更改 ACL,那么他为什么不编辑日志文件?日志服务/应用程序运行时可以编辑日志吗?

这么多问题,现在来回答我。我会使用icacls,而不是cacls。

授予权利:
icacls logfilename /grant *S-1-5-32-545:(WD)

要删除权限(仅当授予的 ACL 条目是该文件上该用户的唯一条目时才有效!):
icacls logfilename /remove *S-1-5-32-545

我使用的是 SID 而不是上面调用中的名称,因为 SID 独立于操作系统语言,并且在您的英语 Windows 和我的德语 Windows 上的工作方式相同。

如果您想要保存恢复逻辑,您可以保存文件的 ACL 调用
icacls logfilename /save aclsavefile
并使用恢复 ACL
icacls . /restore aclsavefile

如您所见,保存需要文件名,恢复需要文件夹名(文件名存储在 aclsavefile 中并从那里获取)。注意:在 Windows 7 上,恢复 ACL 需要(备份?)权限,并且只能在以管理员身份运行时完成。

于 2012-08-15T12:29:52.620 回答