【问题标题】:prevent DEL command from deleting a specific file防止 DEL 命令删除特定文件
【发布时间】:2019-01-10 15:07:45
【问题描述】:

我是第一学期的学生,到处找都没有运气, 我的作业中有 2 个问题基本相同 - 或者至少我是这么认为的。

首先:您想保护自己不使用 DEL 命令删除名为 PROG.EXE 的程序。指定一些方法来做到这一点。

第二:编写一个命令,通过该命令可以通过命令del Pass.log删除来保护文件Pass.log

有没有办法保护它们免受 cmd 中的 DEL 命令的影响?

【问题讨论】:

  • 在 UNIX/Linux 中,您可以为每个命令创建别名,例如 alias del='echo do not delete a file'(未测试)。这用提到的错误消息替换了一般的del 命令,但我不知道这在 Windows 中是否可行。

标签: windows cmd del


【解决方案1】:

在 Windows 上:

  • 您可以将文件设置为只读。 (右键单击文件-> 属性-> 常规选项卡-> 选中“只读”复选框) 或者使用命令:Attrib +R 1.txt

  • 使用安全选项卡,您可以在文件的修改权限上添加“拒绝”。 (右键单击文件-> 属性-> 安全选项卡-> 编辑每行检查修改附近的拒绝)

在 Unix/Linux 上: 您可以使用chmod 命令删除每个人的写权限。喜欢chmod -w PROG.EXE

对于第二个任务:(在 Windows 上)

  • Attrib +R 1.txt 命令会将文件设置为只读。
  • icacls 1.txt /deny <User>:M 命令将为用户修改和删除设置安全拒绝。你应该把你的用户而不是<User>
  • icacls 1.txt /deny <User>:D 命令只会阻止您删除文件而不是修改它(即使是空文件)

【讨论】:

  • 是的,我知道这样它就不会再被删除了,对于第一个问题,这个解决方案是完美的。但是对于第二个问题,他要求执行相同工作的命令,即我在 :3 中丢失的部分
  • 不要在拒绝访问控制条目 (ACE) 中使用简单或通用的权限,例如“M”、“D”和“GW”。简单通用权限实际上是一组权限,包括SYNCHRONIZEFILE_READ_ATTRIBUTES等必需权限。拒绝该集合会使用户无法进行所有正常的文件访问。拒绝 ACE 应仅拒绝特定权利,例如“DE”(删除)或“DC”(删除子项),例如icacls "." /deny <user>:(DC)icacls "1.txt" /deny <user>:(DE).
  • 请注意,如果我们不拒绝对包含目录 (".") 的 delete-child 访问,用户仍然可以删除文件。同样,在 Unix 中,能够删除文件是由对包含 目录 的写访问控制的。拒绝对文件的写访问不会阻止删除它。此外,许多 Unix 系统具有包含不变性的文件属性和标志的概念,但它可能需要超级用户访问权限。例如在 Linux 中,我们可以将文件标记为不可变,例如通过sudo chattr +i "1.txt" 并通过lsattr "1.txt" 读取属性。
猜你喜欢
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 2020-03-16
  • 2023-04-10
  • 2021-09-11
  • 1970-01-01
相关资源
最近更新 更多