Назад | Перейти на главную страницу

Запуск su с -c дает нераспознанную командную ошибку

Я пытаюсь запустить команду в 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"