feat: rm/cp/mv/chmod/chown 等文件操作命令支持(需人工审批)

- SHELL_WRITE_COMMANDS 新增 rm cp mv chmod chown mkdir touch ln
  所有文件操作命令任意参数都需人工审批
- _PIPE_DANGEROUS_TARGETS 移除 rm mv chmod chown,它们现在在
  写白名单中审批执行,不再直接拒绝
- 管道分支增加写表子命令不匹配时的回退处理
This commit is contained in:
Your Name
2026-07-25 14:42:30 +08:00
parent 8852e6d0ca
commit 3c3b7abda5
2 changed files with 25 additions and 4 deletions
+6 -1
View File
@@ -84,8 +84,13 @@ class ShellCommandPolicyTest(unittest.TestCase):
self.assertTrue(decision.requires_approval)
def test_rejects_unknown_binary(self):
# rm 现在在写白名单中(需审批),不会直接拒绝
decision = classify_shell_command("rm -rf /tmp/cache")
self.assertEqual(decision.mode, "write")
self.assertTrue(decision.requires_approval)
# 完全不在任何白名单中的命令才拒绝
with self.assertRaises(ValueError):
classify_shell_command("rm -rf /")
classify_shell_command("hacktool -x")
def test_rejects_shell_operators_in_shell_command(self):
# 分号 ; 仍被拒绝