装好 KerWork 之后,第一件该做的事,是打开设置页查看文件访问范围,不要急着让它跑任务。桌面执行类工具在安装后一般会带一个默认的可访问路径列表,常见的是用户主目录、桌面、下载、文档这几处,这个范围通常比任何一个具体任务的实际需要大得多。KerWork 能碰哪些文件,取决于设置页里的目录列表与当前系统账户自身权限的交集;首次使用建议先把这个范围收窄到你指定的文件夹,再验证行为是否与设置里的声明一致。
判断依据:KerWork 的可访问范围以设置页里的目录列表为准,同时受当前系统账户权限约束。建议首次使用只保留一个自建工作目录,其余宽范围目录先从列表移除;用一个只读任务确认声明与真实行为是否对得上,写操作单独放在可清理目录里执行,事后用执行记录逐条核对触碰的路径。如果设置页显示的范围与执行记录不一致,以执行记录为准,并暂停写入类任务。
在设置页找到可访问目录的默认范围
不同版本对这块的叫法差异很大,可能是“文件访问”“可访问目录”“工作区”“权限与安全”,也可能出现在首次启动的引导页里。判断入口是否找对,看页面上是否列出一组具体路径和增删按钮;只有一条总开关、没有路径列表的页面,通常不是你要找的地方。先找到路径列表,再谈调整。
看默认值时,除了哪些目录在列表里,还要看每个条目旁边的权限标识。有的界面会写成“只读”“读写”两档,有的只列目录、不区分权限,后者通常意味着读写一起放开,按读写对待更保守。列表里出现家目录、桌面或者整个磁盘根路径时,说明默认范围已经超出单个任务的需要,建议先把这类宽范围条目移除,而不是留着等以后再说。
- 记下当前列表里每一条路径,以及每条后面的权限标注;没有标注的,先按读写处理。
- 移除宽范围条目,比如家目录、桌面、下载、整个磁盘卷。移除后回到列表复核,确认条目数确实减少。
- 添加你自建的工作目录,添加时注意区分“选目录”和“选文件”,要的是目录。
- 保存后重新进入设置页复核一次,避免出现“改了但没生效”的情况;部分工具需要重启进程,才按新配置加载。
如果设置页里没有目录列表、只有全开或全关,那就没有可细调的粒度,此时就绕到后文的隔离与人工确认手段:把任务限定在自建目录里、在任务描述里写明路径、写操作前必须人工确认。
用一个只读任务验证它实际能打开哪些文件
设置页只是声明,真正要紧的是跑一次不产生任何修改的任务,看声明和行为是否对得上。可以在 KerWork 的任务输入框里用下面这段描述,把路径换成你自己的测试目录:
只读任务:列出 /Users/你的用户名/KerWorkSandbox/inbox 目录下所有 .md 文件的文件名和修改时间,
按修改时间倒序输出。不要创建、修改、删除或重命名任何文件,不要读取该目录以外的路径。
如果目录不存在或无权限,直接报告错误文本,不要尝试其他路径。
观察点有两个层面。读取成功时,输出里通常会出现具体文件名或“已读取 N 个文件”之类的提示,同时文件数量应当和你手动 ls 出来的结果一致。被拒绝时,提示文案往往与成功提示明显不同,常见形式是“路径不在允许范围内”“无访问权限”“Permission denied”之类;具体措辞以你界面上实际显示的为准,把它整句抄下来,后面核对记录时用得上。
结果落在哪里也要确认:一般在任务的输出面板、执行记录或历史列表里,有的版本另存日志文件。跑完只读任务后,回到设置页把测试目录临时移出列表,再跑一次同一段任务,看是否出现拒绝提示,这一步能确认限制确实由设置页控制,而不是别的原因导致。
给写操作单独开一个工作目录
凡是要生成、改名、删除文件的任务,都不建议直接指向你的文档目录。先建一个可以整体删掉的工作区,让 KerWork 只能在这个工作区里写:
mkdir -p ~/KerWorkSandbox/{inbox,outbox,trash}
# inbox 放待处理的样本文件
# outbox 放任务产出的结果
# trash 放待清理的中间产物,确认无用后整体删除
设置页里只需要授权 ~/KerWorkSandbox 这一个目录。样本文件用系统命令复制进去,不要靠 KerWork 自己去搬,这样入口文件是可追溯的:
cp ~/Documents/sample.md ~/KerWorkSandbox/inbox/
ls -l ~/KerWorkSandbox/inbox/
复制后立刻用 ls -l 确认文件确实在,并记下大小和修改时间。任务跑完后再执行一次同样的 ls -l,比对时间戳变化:inbox 里原文件的时间戳应当没变,变化只出现在 outbox 或 trash。写任务结束后想回收空间,直接删除整个 ~/KerWorkSandbox 即可,不会波及工作区以外的文件。
从执行记录里核对每次任务触碰的路径
执行记录一般在任务详情页或历史列表里,入口通常是任务列表中的单条记录,点开后能看到该次执行的动作明细。需要重点看的字段有:执行时间、任务描述、动作类型(读取、写入、删除)、目标路径(最好要求绝对路径)、执行结果(成功、失败、被拒),以及失败时的错误文本。部分界面还会显示会话 ID 便于串联同一任务的多步操作。
核对方法是把记录里的每条绝对路径拿到系统里逐一比对:读操作可以用 ls -l 或 stat 看文件是否存在、修改时间是否与记录时间吻合;写操作除了看文件是否新增,还可以对工作区目录做一次前后对比:
find ~/KerWorkSandbox -type f -printf '%T+ %p\n' | sort
在任务执行前后各跑一次,把输出存成两个文本文件对比,就能看出究竟新增或改动了哪些文件。一旦记录里出现工作区以外的路径,或者出现没有对应弹窗确认的写入,先把任务停掉,回设置页复查目录列表。
三种把越界请求挡回去的做法
第一种是目录白名单。设置页只保留自建工作目录,其余条目全部移除,这是最直接的一层。代价是临时需要读别的目录时要手动加、用完再删,适合任务范围相对固定的场景;加进去的目录用完忘记移除,就等于长期放宽了权限,所以每次临时添加都建议当场记一笔。
第二种是在任务描述里写明限定路径,把它当成第二道约束。即使工具本身没有拦截,任务描述里写清楚“只读 A 目录、结果只写到 B 目录、不得访问其他路径”,也能让模型的行为更容易被预期,出现问题时有据可查。示例写法:
本次任务允许的读取路径:/Users/你的用户名/KerWorkSandbox/inbox
本次任务允许的写入路径:/Users/你的用户名/KerWorkSandbox/outbox
除上述两条路径外,不得访问、列出或试探任何其他目录;如果需要其他文件,停止并说明原因。
第三种是开启执行前人工确认。设置页里通常有“执行前确认”“每次写入前询问”“操作需要确认”一类开关,名称看本地界面;打开后,涉及写入或删除的操作会弹出确认窗口,列出将要改动的目标路径,必须点击确认才会执行。效果是否真的生效,用一次写任务去验证:如果正常弹窗,说明这层拦截在线;如果没有任何弹窗就直接落盘,说明开关没生效或当前版本不支持,这时应回设置页复查,并改用前两种手段兜底。
三种做法并不冲突,建议叠加使用:白名单收窄范围、任务描述写明边界、人工确认兜住写操作。三层都确认过之后,再让 KerWork 处理真实文件,心里才有底。