Запуск 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'
Другие вопросы по тегам