답변:
그것은에서 보이는 http://www.turnkeylinux.org/redmine 우분투는 달리, 기본적으로 sudo를 사용하지 않고, 레드 마인처럼. SSH에 어떤 사용자 이름을 사용하고 있습니까? 이 경우 Redmine 시스템에 SSH로 연결할 때 수행하는 모든 root
작업은 다음과 같이 수행되므로 사용할 필요가 없습니다 . 와 같은 다른 것이 있으면 명령을 사용하여 명령 을 실행할 쉘 을 얻을 수 있습니다.sudo
root
admin
su
root
root
설치되지 않았습니까? 패키지 관리자를 열고 sudo 패키지를 설치하십시오 .
전체 경로를 사용하려고
/usr/bin/sudo
해당 명령이 작동하면 ~ / .bashrc의 env 변수 PATH에 / usr / bin /을 포함하십시오.
echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc
희망적으로 작동합니다 ..
/usr/bin
거의 확실하게 당신의 기본 경로에있을 것입니다. 다른 답변과 의견에서 알 수 있듯이 문제는 sudo
명령이 전혀 설치되지 않았다는 것입니다.
명령 행에서 호출하려는 2 진이 현재 사용자의 PATH 변수의 일부일뿐 루트 사용자의 PATH의 일부가 아니기 때문에 오류가 발생합니다.
액세스하려는 바이너리의 경로를 찾아서이를 확인할 수 있습니다. 제 경우에는 "bettercap-ng"를 호출하려고했습니다. 그래서 나는 달렸다
$ which bettercap-ng
output: /home/user/work/bin/bettercap
이 위치가 루트 사용자의 PATH 일부인지 확인했습니다.
$ sudo env | grep ^PATH
산출: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
따라서 sudo는 명령 줄에서 호출하려는 바이너리를 찾을 수 없습니다. 따라서 오류 명령을 찾을 수 없습니다.
아래와 같이 바이너리를 호출 할 때 sudo에게 현재 사용자의 PATH를 사용하도록 지시 할 수 있습니다.
$ sudo -E env "PATH=$PATH" [command] [arguments]
실제로 별명을 만들 수 있습니다.
$ alias mysudo='sudo -E env "PATH=$PATH"'
원래 sudo를 대체하여 별명 자체의 이름을 sudo로 지정할 수도 있습니다.
단계별 솔루션에 대해서는 이 비디오 를 참조하십시오