Bash sudo 명령을 찾을 수 없습니다

Bash sudo 명령을 찾을 수 없습니다

턴키 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이를 사용할 필요가 없습니다 . 예를 들어 다른 것이라면 해당 명령을 사용하여 로 시작하는 쉘을 얻을 수 있습니다 .sudorootadminsurootroot

답변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를 대체할 수도 있습니다.

보다이 비디오단계별 솔루션

관련 정보