В комментариях SagePtr подсказал, что проблема в том, что shell_exec выполняется от пользователя, у которого нет доступа к папкам других пользователей. Крайне очевидно, но я не подумал об этом
Chdir возвращает ответ, по которому можно определить отработало это или нет. Когда не срабатывает, то в лог кидается ошибка с описанием причины.
Соответственно, вопрос, на фига гадать, если нужно читать лог.