bashスクリプトをrootユーザーとして実行し、スクリプトにsudoコマンドを含めます。

bashスクリプトをrootユーザーとして実行し、スクリプトにsudoコマンドを含めます。

Linuxを初めて使用する場合 - Debian 9を使用しています。

pwndbgチュートリアルに従って、スクリプトを実行してインストールしたいと思います。ここ。私はこれを行うために私のrootアカウントを使用しており、それを私のrootアカウントのホームディレクトリにインストールしようとしています。出力は次のとおりです。

root@My-Debian-PC:~/pwndbg# ./setup.sh
+ PYTHON=
+ INSTALLFLAGS=
+ osx
+ uname
+ grep -i Darwin
+ '[' '' == --user ']'
+ PYTHON='sudo '
+ linux
+ uname
+ grep -i Linux
+ sudo apt-get update
./setup.sh: line 24: sudo: command not found
+ true
+ sudo apt-get -y install gdb python-dev python3-dev python-pip python3-pip libglib2.0-dev libc6-dbg
./setup.sh: line 25: sudo: command not found
root@My-Debian-PC:~/pwndbg#

どうやら、スクリプトはsudo権限を持つアカウントで実行されると見なされ、rootsudoアカウントではコマンドが使用できないため、エラーが発生します。

それでは、エラーを取り除く方法はありませんか?単にスクリプトを編集し、sudo24行と25行から単語を削除する必要がありますか、それともこれが悪い習慣ですか?または、後で他のスクリプトでエラーが発生した場合に備えて、私のrootアカウントをsudoグループに追加できますか?それともスクリプトをそのまま実行してからapt-get update実行する必要がありますかapt-get -y install gdb python-dev python3-dev python-pip python3-pip libglib2.0-dev libc6-dbg

ありがとうございます!

答え1

スクリプトを編集してsudoコマンドを削除できる場合は、rootでスクリプトを実行すると期待どおりに機能します。

コマンドをインストールすることも、sudoコマンドを正常に実行する方法です。

apt install sudo

答え2

root以外のユーザーとして実行してみましょう。このような安全構造が存在する理由はあります。

すでにルートの場合はsudo重複します。スクリプトはしばしば「sudo」を使用して一般ユーザーに「本当にこれを行いますか?」と尋ねるか、特定のユーザーに対する変更とシステム全体の変更を区別するために使用します。したがって、テストボックスを乱す場合は、テストボックスを使用しますが、「sudo」行の機能を具体的に理解していることを確認してください。

また、管理以外の広範な目的でルートアカウントを使用しないように注意してください。ソフトウェア開発用にインストールするライブラリを実際に使用するには、管理者以外のユーザーを毎日のログインとして使用することをお勧めします。バラよりここrootでアプリケーションを実行するために定期的にログインするのはなぜ悪い考えですか?セキュリティに興味がある場合は、これを理解することが特に重要です。

関連情報