Спросите у комнаты инженеров, что значит chmod 754, — половина ответит уверенно, половина будет гадать. Восьмеричная схема элегантна, если вы считаете биты, и бомба замедленного действия, если нет. CliAI просто даёт описать намерение.
1. Исполняемый только для себя
$ clai сделай этот скрипт исполняемым только для меня→ chmod 700 ./deploy.sh
700 = rwx для владельца, ничего группе, ничего остальным. Запомнили бы, если бы пользовались еженедельно. Большинство — нет.
2. Право записи группе
$ clai дай группе deploy право записи в /srv/app→ chgrp -R deploy /srv/app && chmod -R g+w /srv/app[Safety: CAUTION] — рекурсивное изменение прав.
Обратите внимание на бейдж: любая -R модификация получает CAUTION, потому что при неверном пути радиус ущерба большой. Почему — в посте про safety.
3. Рекурсивная смена владельца
$ clai chown всех файлов в /srv/app на пользователя app и группу app→ chown -R app:app /srv/app[Safety: CAUTION]
-R подразумевается фразой «всех файлов в»; CliAI вытаскивает это и добавляет. Синтаксис user:group работает и на Linux, и на macOS.
4. Setuid-бит на одном бинаре
$ clai добавь setuid-бит к /usr/local/bin/myutil→ chmod u+s /usr/local/bin/myutil
u+s читается лучше восьмеричного 4755. Здесь восьмеричная арифметика чаще всего и ошибается: добавить setuid к существующему 755 — это 4755, но если было 750, правильный ответ 4750. Символьные флаги не заставляют считать.
5. «Такие же права, как у соседнего файла»
$ clai дай ./new.sh те же права, что у ./run.sh→ chmod --reference=./run.sh ./new.sh
--reference= — флаг, про который почти никто не знает. Он есть. CliAI знает.
См. также
- Классификация безопасности — почему рекурсивные изменения прав по умолчанию CAUTION.
- Массовое переименование файлов — задача той же формы (действие на множестве), другой глагол.