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


33

ターンキーlinux redmineを使用してVMをセットアップしました。サーバーにSSHで接続して、いくつかのアイテムをインストールしようとしています。

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

 -bash: sudo: command not found

「whereis sudo」と入力するために別の場所を読んだところ、出力は

 sudo:

回答:


20

Redmineのようにhttp://www.turnkeylinux.org/redmineから見えますが、Ubuntuとは異なり、デフォルトではsudoを使用しません。SSHに使用するユーザー名は何ですか?の場合、RedmineシステムにSSHで接続したときに行うことはすべてとして行わrootれるためsudo、使用する必要はありませんroot。のような他の場合adminは、suコマンドを使用して、コマンドrootを実行するシェルを取得してみてくださいroot


スクリプトにsudoコマンドがある場合の対処方法。mkusbで私に起こります。将来の利便性のためにsudoをインストールする方が良いでしょう。
愛グローバー

40

おそらくインストールされていませんか?パッケージマネージャーを開き、sudoパッケージをインストールします。


2
インストールされていません!ありがとう。私はLinuxにかなり慣れていないので、それがすべてのインストールにあると仮定しました。sudoパッケージまたはsudo-ldapも必要ですか?

2
sudo-ldapパッケージは必要ありません。私のコンピューターではSudoが正常に動作し、sudo-ldapがインストールされていません。
アゼンデール

6

最初にルートアカウントにログインします。それから

$ apt-get install sudo

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

$ sudo adduser <user> sudo

次に、としてログインする必要があり<user>sudoコマンドがあるはずです。


5

フルパスを使用してみてください

/usr/bin/sudo

そのコマンドが機能する場合は、〜/ .bashrcのenv変数PATHに/ usr / bin /を含めます

echo "export PATH="$PATH:/usr/bin"" >> ~/.bashrc

うまくいけば..


4
それが問題になることはほとんどありません。/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を置き換えることもできます。

段階的な解決策については、このビデオを参照しください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.