Bash sudo コマンドが見つかりません

Bash sudo コマンドが見つかりません

ターンキーLinux Redmineを使用して仮想マシンをセットアップし、より多くのプロジェクトをインストールするためにサーバーにSSHを試しています。

sudoコマンドを認識しないようです。何かをsudoしようとするたびに、次のエラーメッセージが表示されます。

 -bash: sudo: command not found

「whereis sudo」と入力すると、出力が次のような他の場所を読みました。

 sudo:

答え1

たぶんインストールされていませんか?パッケージマネージャを開き、インストールします。Sudoパック。

答え2

それから来るようですhttp://www.turnkeylinux.org/redmineRedmineと同様に、Ubuntuとは異なり、sudoはデフォルトでは使用されません。 SSHにどのユーザー名を使用していますか?その場合は、SSHを介してRedmineシステムに接続するときに実行するすべての操作がそのまま維持されるため、rootそれを使用する必要はありません。たとえば、他のものであれば、そのコマンドを使用してから始まるシェルを取得できます。sudorootadminsurootroot

答え3

rootアカウントにログインして起動します。それから

$ apt-get install sudo

既存のユーザーをグループに追加sudo

$ sudo adduser <user> sudo

次に、次にログインし、<user>コマンドsudoが必要です。

答え4

コマンドラインから呼び出すバイナリは、rootユーザーのPATHではなく現在のユーザーのPATH変数の一部であるため、エラーが発生します。

アクセスしたいバイナリのパスを見つけてそれらを確認できます。私の場合は、「bettercap-ng」と呼びました。だから私は走った。

$ which bettercap-ng

output: /home/user/work/bin/bettercap

この場所が私のrootユーザーパスの一部であることを確認しました。

$ 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を置き換えることもできます。

よりこの動画段階的なソリューション

関連情報