加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 删除文件链接而不清除只读位

发布时间:2020-12-13 22:37:02 所属栏目:Windows 来源:网络整理
导读:我有一组文件,其中包含多个链接. 这些文件归TFS源代码控制所有,但也会向其发送其他链接.如何在不清除只读位的情况下删除其他链接. 可以安全地假设: 这些文件有多个链接 您没有删除TFS拥有的名称 没有潜在的竞争条件 您对文件具有ACL完全控制权 机器不会断电
我有一组文件,其中包含多个链接.

这些文件归TFS源代码控制所有,但也会向其发送其他链接.如何在不清除只读位的情况下删除其他链接.

可以安全地假设:

>这些文件有多个链接
>您没有删除TFS拥有的名称
>没有潜在的竞争条件
>您对文件具有ACL完全控制权
>机器不会断电,除非花费太长时间,否则你的程序也不会被杀死.

假设是不安全的:

> readonly位已设置(如果不是,则不设置)
>如果遇到错误并且最初设置了错误,您可以将只读位清零

不要迁移到超级用户 – 如果迁移到那里,答案是不可能的,因为没有标准工具可以做到这一点.

在一个假设的* nix系统中,一个人需要对文件的写权限才能删除它,有一个涉及fchmod()的解决方案.但是,表现出这种行为的系统是Windows系统.

解决方法

您是否尝试过启用SeBackupPrivilege和SeRestorePrivilege,它们允许管理员放松许多安全检查?

您可能会发现this newsgroup thread有用.

编辑:
要在没有特权的情况下执行此操作,并且不创建竞争条件,您将需要Vista及更高版本中存在的事务性NTFS支持.顺便说一句,您可以使用句柄设置属性,将FILE_BASIC_INFO传递给SetFileInformationByHandle,可以进行交易,请参阅注释.或者,您可以使用FindFirstFileName查找指向未删除的同一文件的另一个硬链接,并使用该链接设置只读.

> CreateTransaction
> GetFileAttributesTransacted
> SetFileAttributesTransacted
> CreateFileTransacted或FindFirstFileNameTransactedW
> DeleteFileTransacted
> SetFileInformationByHandle或SetFileAttributesTransacted
> CommitTransaction

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读