我想故意破坏一个文件夹名称,以便我可以在其上测试脚本。
当前文件夹的名称类似于:
37ee0500-52c0-4a18-861e-0084EF05FB
位于:/user/members/local/
我想使它的名称损坏,这样我就无法cd
进入该文件夹,重命名或删除它。
有什么想法我该如何做吗?
谢谢
答案1
如果你没有以 root 身份运行测试,我认为你不需要破坏文件名来执行这些测试
- 使用 chmod 删除执行权限,这将禁用遍历,因此您无法进入其中。
- 使用 chattr 使目录不可变。您将无法重命名或删除它。
如果你正在使用 root
- 不要那样做。
如果您仔细想一想,如果您破坏了目录名称,那么您无法与其交互的原因很可能是因为您错误地传递了名称,因此您实际上是在尝试与错误的条目进行交互。这引出了另一个可能的解决方案...
答案2
一种简单的方法(仅当您不是root时才可用,否则您将无法执行任何操作):
$ chown -R someuser:somegroup folder
$ chmod a-x folder
现在您的用户(不同于someuser
且不属于somegroup
)无法访问目录。
为了防止文件夹重命名,您需要更改权限父母文件夹:
$ chown someuser:somegroup <parent>
$ chmod 755 <parent>
我强烈建议在特定文件夹上执行此操作。如果在公共文件夹中执行此操作,可能会导致严重问题。