как изменить chmod каталог из корневого crontab

Корень crontab -e содержит строки

@reboot mkdir -p /tmp/vimbackups
@reboot chmod 777 /tmp/vimbackups
@reboot anotherCommand

После загрузки каталог был создан, но он по-прежнему имеет разрешения по умолчанию 755. (Этот каталог предназначен для .vimrc's set backupdir = / tmp / vimbackups , если это имеет значение.)

/ var / log / syslog показывает, что были вызваны все три команды:

CRON[937]: (root) CMD (mkdir -p /tmp/vimbackups)
CRON[940]: (root) CMD (chmod 777 /tmp/vimbackups)
CRON[938]: (root) CMD (anotherCommand)

Это так после при каждой перезагрузке.

Если я chmod из оболочки, или из sh -c или bash -c , тогда chmod работает.
Почему не работает из cron? Есть ли способ заставить его работать?

1
задан 11 August 2020 в 01:29

1 ответ

Вероятно, обе команды mkdir и chown ] выполняются (почти) одновременно, и что-то идет не так.

Вы можете задать смещение в лотке следующим образом:

@reboot sleep 5  && mkdir -p /tmp/vimbackups
@reboot sleep 10 && chmod 777 /tmp/vimbackups

Или вы можете использовать логический оператор и && для запуска chmod if mkdir успешно:

@reboot mkdir -p /tmp/vimbackups && chmod 777 /tmp/vimbackups

Но, вероятно, лучший способ - установить режим файла с помощью команды mkdir :

@reboot mkdir -p -m 777 /tmp/vimbackups
  • Обратите внимание, это команда не затрагивает разрешения дерева (родительские каталоги).
0
ответ дан 11 August 2020 в 20:05

Другие вопросы по тегам:

Похожие вопросы: