В shell-скриптах часто нужно создать файл или директорию сразу с правильными правами. Например, конфиг, lock-файл, каталог для данных или место под секреты.
Обычно пишут в несколько шагов:
touch /etc/myapp/token
chmod 600 /etc/myapp/token
На первый взгляд всё нормально, но между командами файл уже существует с правами по умолчанию. В плохом сценарии это короткое окно может быть лишним, особенно если речь про секреты.
Для таких случаев есть install:
install -m 600 /dev/null /etc/myapp/token
Команда создаёт файл и сразу выставляет нужные права. /dev/null здесь используется как пустой источник.
Для директорий тоже можно сразу указать режим:
install -d -m 750 /var/lib/myapp
А если нужно задать владельца и группу:
install -o app -g app -m 750 -d /var/lib/myapp
Это делает deploy-скрипт короче и безопаснее. Права, владелец и сам факт создания описаны в одной команде, а не размазаны по нескольким строкам.
➡️ DevOps Ready | #совет
