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, потому что при неверном пути радиус ущерба большой. Почему — в посте про safety.

3. Рекурсивная смена владельца

clai
$ clai chown всех файлов в /srv/app на пользователя app и группу app→ chown -R app:app /srv/app[Safety: CAUTION]

-R подразумевается фразой «всех файлов в»; CliAI вытаскивает это и добавляет. Синтаксис user:group работает и на Linux, и на macOS.

4. Setuid-бит на одном бинаре

clai
$ clai добавь setuid-бит к /usr/local/bin/myutil→ chmod u+s /usr/local/bin/myutil

u+s читается лучше восьмеричного 4755. Здесь восьмеричная арифметика чаще всего и ошибается: добавить setuid к существующему 755 — это 4755, но если было 750, правильный ответ 4750. Символьные флаги не заставляют считать.

5. «Такие же права, как у соседнего файла»

clai
$ clai дай ./new.sh те же права, что у ./run.sh→ chmod --reference=./run.sh ./new.sh

--reference= — флаг, про который почти никто не знает. Он есть. CliAI знает.

См. также