Я хочу выполнить команду на оболочке от имени другого пользователя. Команда выглядит следующим образом:
sudo -u USER cd /home/USER
я получил
sudo: cd: command not found
Каков правильный синтаксис команды для передачи в sudo?
sudo
cd-command
coffeMug
источник
источник
cd
. ОП наверное хочетsudo -i
.cd
это не внешняя команда, это только встроенная оболочка, поэтому онаsudo
не может быть выполнена. Причина, по которойcd
существует только встроенная оболочка, состоит в том, что процесс не может влиять на текущий каталог другого процесса; поэтому программа, которая изменяет текущий каталог и немедленно выходит из него, бесполезна. (Практически бесполезно:cd
программа возвращает статус, который указывает, был ли он успешным.)Если вы хотите перейти в каталог, а затем запускать команды от имени другого пользователя, запустите оболочку, которая делает все это.
источник
Я склонен использовать:
sudo su - USERNAME
а затем делать то, что вам нужно, как этот пользователь. Чтобы выйти просто введитеexit
источник
USERNAME
затем выполнение команды отличается от непосредственного запуска команды какUSERNAME