CLI AI

chmod 和 chown 不再做八进制算术:开口要,不要算

2026-04-09

问一屋子工程师 chmod 754 是什么意思,一半人胸有成竹,另一半在猜。八进制方案如果你在算位、就很优雅;不算就是定时炸弹。CliAI 让你直接描述意图。

1. 只对我可执行

clai
$ clai 让这个脚本只对我可执行→ chmod 700 ./deploy.sh

700 = 所有者 rwx,组无,其它无。每周用就记得,大多数人不每周用。

2. 让组可写

clai
$ clai 让 deploy 组对 /srv/app 有写权限→ chgrp -R deploy /srv/app && chmod -R g+w /srv/app[Safety: CAUTION] — 递归更改权限。

注意标签:任何 -R 修改默认 CAUTION,因为路径错时影响范围大。原因在安全分级那篇。

3. 递归改属主

clai
$ clai chown /srv/app 下所有文件到 user app 和 group app→ chown -R app:app /srv/app[Safety: CAUTION]

-R 是「下所有文件」隐含的;CliAI 自己取出来加上。user:group 写法 Linux 与 macOS 通用。

4. 单个文件的 setuid 位

clai
$ clai 给 /usr/local/bin/myutil 加 setuid 位→ chmod u+s /usr/local/bin/myutil

u+s 比八进制 4755 更好读。这里也是八进制最容易出错的地方——给 755 加 setuid 是 4755,但如果原本是 750,正确是 4750。符号写法不让你做算术。

5. 「跟邻居权限一样」

clai
$ clai 让 ./new.sh 拥有和 ./run.sh 一样的权限→ chmod --reference=./run.sh ./new.sh

--reference= 是个几乎没人知道的参数。它存在。CliAI 知道。

另见

  • 安全分级——为什么递归权限变更默认 CAUTION。
  • 批量改名——同样形态(对多个文件操作),不同动词。