Я пытаюсь запустить команду в Linux от имени другого пользователя. Вот что я бегаю:
su user1 -c '/bin/mkdir /tmp/zz'
Однако это дает мне эту ошибку:
fatal: unrecognized command '/bin/mkdir /tmp/zz'
По предположению Марка Вагнера, я столкнулся с той же проблемой, когда у пользователя была нестандартная оболочка (в моем случае это была git-shell). И решение было сделать:
su -s /bin/bash -c 'some command'
Вам нужно поменять одинарные кавычки на двойные. Не то чтобы это требовалось только для команд, которые принимают параметры, или если вы объединяете несколько команд вместе.
su user1 -c "/bin/mkdir /tmp/zz"