root以外のユーザーは、「sudo vi /etc/hosts」を実行した後にrootアクセス権を取得します。

root以外のユーザーは、「sudo vi /etc/hosts」を実行した後にrootアクセス権を取得します。

Linux システムで root 以外のユーザーがファイルを開くと、

$ sudo vi /etc/hosts

そしてやめなさい。:sh

root アクセス権を取得します。

1)上記のように、root以外のユーザーはどのようにrootユーザーになりますか?

2)Linuxはなぜこれらのハッキング方法がセキュリティを侵害するのを許可するのですか?

答え1

root以外のユーザーは、正常に実行されるとrootになりますsudo(家庭のターゲットをカスタマイズする)。ルートとして実行をroot開始します。シェルをvi要求すると、vi現在のユーザールートでシェルを誠実に実行します! viを「終了」するためにこのコマンドを使用してはならないことを明確にする必要があります。:shこれにはシェルが必要だからです。代わりに終了してください:q

Linuxはこのような機能を可能にします。それがまさにそれだからですsudo!たぶんあなたはsudoについての講義を見たことがあります:

あなたはあなたのローカルシステム管理者から一般的な講義を聞いたと思います。一般的には、次の3つの点に帰結します。

#1) 他人のプライバシーを尊重します。

#2)入力する前に考えてみてください。

#3)大きい力に大きい責任が続く。

!sudoは、通常、次のように、否定演算子の形式で「すべての」アクセス権を付与するときに、これに制限された「スピード防止ジョー」を提供します。

jill        SERVERS = /usr/bin/, !SU, !SHELLS

ここで jill には /usr/bin にあるプログラムを実行する権限が与えられますが、SU または SHELLS エイリアスにリストされているプログラムは実行できません。

これsudoers のマニュアルページsudoを介して一括アクセスを許可し、それを制限する方法に関する完全な「セキュリティに関する注意事項」セクションがあります。

「!」の制限演算子

ALLから「減算」のために「!」演算子の使用は通常効果がありません。ユーザーは目的のコマンドを別の名前にコピーし、そのコマンドを実行してこの問題を簡単に回避できます。

そして

通常、ユーザーがsudo ALLを使用している場合、ユーザー仕様の「!」要素に関係なく、ルートシェルを提供する独自のプログラムの作成(または独自のシェルコピーの作成)を防ぐことはできません。

より関連性の高いものは次のとおりです。

シェル脱出防止

sudoがプログラムを実行すると、プログラムは他のプログラムの実行を含む任意の操作を自由に実行できます。プログラムがシェルエスケープを許可して、ユーザーがsudoアクセス制御とロギングをバイパスできるようにすることが多いため、これはセキュリティの問題になる可能性があります。シェルエスケープを許可する一般的なプログラムにはシェル(明らかに)、編集する、ポケットベル、メール、端末プログラム

答え2

成功した場合は、sudo vi /etc/hostsシステム管理者がユーザーがvi /etc/hostsrootとして実行できるようにしたことを意味します。これがまさにsudoの中核です。これにより、システム管理者は特定のユーザーに追加の権限で特定のコマンドを実行する権限を付与できます。

ユーザーに実行権限が付与されると、シェルの実行やシステム上のすべてのファイルの上書きなど、すべてのviviコマンドを実行する権限があります。実行専用ルールは、ユーザーが任意のコマンドを実行できるようにするため、意味がありません。:sh:wvi /etc/hosts

関連する「ハッカー」はありません。セキュリティの脆弱性は、セキュリティモデルの抜け穴ではなく、設定エラーで発生します。 Sudoは設定エラーを特に回避しません。文書は理解するのが非常に難しいです。疑わしい場合は、周りに尋ねて、複雑すぎる作業を試してはいけません。

一般的に、ユーザーに意図したよりも多くの権限を与えずに特定の権限を付与することは困難な問題です。 viなどのインタラクティブプログラムを実行する権限を付与するなど、ブルドーザーのアプローチは失敗します。一般的な推奨事項は、タスクを完了するために必要な最小限の権限を付与することです。ユーザーがファイルを変更できるようにするには、エディタの実行権限を付与しないでください。代わりに、次のことができます。

  • ファイルに書き込む権限を与えます。これは最も簡単な方法であり、望ましくないことをするリスクが最も少なくなります。

    setfacl u:bob:rw /etc/hosts
    
  • sudoを介してファイルを編集する権限を付与します。これを行うには、エディタの実行権限を付与しないでください。 sudo の資料に記載されているように実行権限を付与すると、sudoeditエディターが呼び出されます。元のユーザーとして次に、追加の権限を使用してファイルを変更します。

    bob ALL = sudoedit /etc/hosts
    

    sudoeditsudoメソッドは、エディタでファイルを開くよりも呼び出す必要があるため、設定がより複雑でユーザーにとって透過的ではありませんが、すべてのアクセスが記録されるという利点があります。

ユーザーが編集できるようにすると、セキュリティ/etc/hostsインフラストラクチャに影響を与える可能性があります。どこでも特定のシステムに対応するホスト名を使用している場合、そのユーザーはそれを別のシステムに指すことができます。それについて考えてくださいとにかく、これはおそらく不要です。

関連情報