턴키 Linux Redmine을 사용하여 가상 머신을 설정했으며 더 많은 프로젝트를 설치하기 위해 서버에 SSH를 시도하고 있습니다.
sudo 명령을 인식하지 못하는 것 같습니다. 뭔가를 sudo하려고 할 때마다 다음과 같은 오류 메시지가 나타납니다.
-bash: sudo: command not found
"whereis sudo"를 입력하면 출력이 다음과 같다는 다른 곳을 읽었습니다.
sudo:
답변1
어쩌면 설치되지 않았을까요? 패키지 관리자를 열고 설치하십시오.스도팩.
답변2
그것은에서 오는 것 같습니다http://www.turnkeylinux.org/redmineRedmine과 마찬가지로 Ubuntu와 달리 sudo는 기본적으로 사용되지 않습니다. SSH에 어떤 사용자 이름을 사용하고 있습니까? 그렇다면 SSH를 통해 Redmine 시스템에 연결할 때 수행하는 모든 작업이 그대로 유지되므로 root
이를 사용할 필요가 없습니다 . 예를 들어 다른 것이라면 해당 명령을 사용하여 로 시작하는 쉘을 얻을 수 있습니다 .sudo
root
admin
su
root
root
답변3
루트 계정에 로그인하여 시작하세요. 그 다음에
$ apt-get install sudo
기존 사용자를 그룹에 추가sudo
$ sudo adduser <user> sudo
그런 다음 다음으로 로그인해야 하며 <user>
명령 sudo
이 있어야 합니다.
답변4
명령줄에서 호출하려는 바이너리가 루트 사용자의 PATH가 아닌 현재 사용자의 PATH 변수의 일부이기 때문에 오류가 발생합니다.
액세스하려는 바이너리의 경로를 찾아 이를 확인할 수 있습니다. 제 경우에는 "bettercap-ng"라고 부르려고 했습니다. 그래서 나는 달렸다.
$ which bettercap-ng
output: /home/user/work/bin/bettercap
이 위치가 내 루트 사용자 경로의 일부인지 확인했습니다.
$ sudo env | grep ^PATH
산출:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
따라서 sudo는 명령줄에서 호출하려는 바이너리를 찾을 수 없습니다. 따라서 찾을 수 없는 오류 명령이 반환됩니다.
아래와 같이 바이너리를 호출할 때 현재 사용자의 PATH를 사용하도록 sudo에 지시할 수 있습니다.
$ sudo -E env "PATH=$PATH" [command] [arguments]
실제로 이를 사용하여 별칭을 만들 수 있습니다.
$ alias mysudo='sudo -E env "PATH=$PATH"'
별칭 자체의 이름을 sudo로 지정하여 원래 sudo를 대체할 수도 있습니다.
보다이 비디오단계별 솔루션