Всегда можно прогнать сначала через sed, заменив разделитель на свой уникальный
а команда test, внутри которой не нужно выполнять bash команды
В go не хватает привычного try/catch.
>>> b0 = 1
>>> b1 = 1
>>> b2 = 4
>>> b3 = 'abc'
>>>
>>> def xorit(seq):
... n = 0
... for i in seq:
... if isinstance(i, int):
... n ^= i
... elif isinstance(i, str):
... n ^= xorit(map(ord, i))
... return n
...
>>> n = xorit([b0, b1, b2, b3])
>>> n
100
>>>
nirvimel как раз указал отличный способ
2) Второй вариант - выставить umask как 002 (сейчас 022), чтобы все файлы создавались с правами 664. Тогда можно будет определить www-data в группу stuff и дело в шляпе. Опять же - насколько корректно с точки зрения безопасности такое изменение?.. И есть ли возможность выставить umask для конкретной папки?..
Выполни groups.