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