ユーザーがrootを介して他のユーザーのファイルにアクセスするのを防ぐメカニズムは何ですか?

ユーザーがrootを介して他のユーザーのファイルにアクセスするのを防ぐメカニズムは何ですか?

マルチユーザーシステムでは、ユーザーがrootを介して他のユーザーのファイルにアクセスするのを防ぎますか?文脈に応じて、質問は次のように私の理解に基づいています。

root権限に関連する2つのコマンドがありますsudosuを使用すると、sudo他のユーザー(ルートを含む)になりません。sudoユーザーに代わって実行される事前定義済みの承認済みコマンドのリストがあります。ルートや他のユーザーではないため、自分のパスワードを使用して簡単に認証できます。

を使用すると、su実際にはrootまたは他のユーザーになります。 Bobというユーザーになるには、Bobのパスワードが必要です。ルートになるには、ルートパスワード(マルチユーザーシステムで定義されている)が必要です。

参考資料:Howtogeek.com:

surootユーザーアカウントに切り替え、rootアカウントのパスワードが必要です。sudoroot 権限で 1 つのコマンドを実行すると、root ユーザーに切り替えられません。

そして

sub bob コマンドを実行すると、Bob のパスワードを入力するよう求められ、シェルは Bob のユーザーアカウントに切り替えられます。コンピュータ希望ネットワーク

tecmint.com:

'sudo'は、rootコマンドを実行する権限を持つユーザーを表すルートバイナリsetuidです。

ルートになると、すべてにアクセスできます。他のユーザーのアカウントに不正にアクセスする人はrootパスワードを取得できず、sudo何を使用できるかについての定義もありません。

次のことを見るまで、これはすべて意味があります。このリンクsudo -V、ここに自分のパスワードを使ってルートになるためのチュートリアルがありますsudo su -

どのユーザーでもrootパスワードなしでrootになることができれば、不正アクセスからユーザーファイルを保護するメカニズムは何ですか?

答え1

これ基本sudoとの違いは、su認証に使用されるメカニズムです。ユーザーはパスワード(徹底的に保護する必要があります)をsu知る必要があり、通常はユーザーに自分のパスワードを要求するように設定されます。すべてのユーザーが混乱を招くのを防ぐために、幸いなことに、このコマンドで解放された権限はファイルを使用して構成できます。rootsudosudo/etc/sudoers

これら2つのコマンドはしばしば他のユーザーとしてコマンドを実行しますroot

sudo su -ユーザー(またはユーザーが属するグループ)がファイル/etc/sudoersに構成されているため、提供された例で機能します。つまり、許可するsudoこれにより一時的に権限をsudo取得し(ユーザー名がroot指定されていない場合はデフォルト)。パスワードを知らなくてもアクセスできます。rootsu -rootroot

逆に、ユーザーに使用を許可しないとsudo使用できませんsudo su -

ディストリビューションには、通常、wheelメンバーがsudoすべてのコマンドを実行できるようにするグループ(しばしば呼ばれる)があります。このグループから削除すると、デフォルトでsudoはまったく使用できなくなります。

これを行う行は次/etc/sudoersのとおりです。

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

このグループからユーザーを削除すると、システムはより安全になりますが、ユーザー(または他のシステム管理者)がユーザーに代わってシステムでより多くの管理タスクを実行します。

より賢明なトレードオフは、誰がそれを使用でき、使用できないか、およびそれらが使用できるコマンド(デフォルトではなく)をsudoより細かく制御できるように構成することです。sudoみんな注文する)。例えば、

## Allows members of the users group to mount and unmount the
## cdrom as root
%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

(以前の%wheel行がコメントアウトされているwheel場合、またはグループにユーザーがいない場合にのみ便利です。)

おそらくディストリビューションでは、管理者がユーザーとシステムに何を要求するかを予測できないため、これらのより細かい構成を標準で実装することはありません。

結論は、詳細を知っていると、ユーザーシェルへのアクセスを許可しない他のコマンド、または他のユーザーのファイルを変更できるコマンドへのアクセスを許可しながら停止できることですsudo。誰に、どのレベルまで許可するかを慎重に検討する必要があります。sudo su -rootsudo

警告する:visudoファイルを編集するには、必ずこのコマンドを使用してください。sudoers編集内容を確認し、誤って設定されたファイル(構文エラーのため)により、sudoエラーに対して編集を使用できないという難しい状況を防ぐことができます。これは、rootこのアカウントがデフォルトで無効になっているDebian / Ubuntuとバリアントの場合に特に当てはまります。

答え2

root権限に関連する2つのコマンドがありますsudosuを使用すると、sudo他のユーザー(ルートを含む)になりません。sudoユーザーに代わって実行される事前定義された承認コマンドのリストがあります(これは、選択したユーザーに選択的な権限を付与する方法の説明で私が尋ねた質問を解決します)。ルートや他のユーザーではないため、自分のパスワードを使用して簡単に認証できます。

これは正確ではありません。suとの間の最も明白な違いsudoは、後者が通常、ターゲットユーザーのパスワードではなく自分のパスワードを要求するように構成され、sudoより柔軟であることです。彼らの全体的な目的はあなたを別のユーザーにすることです。su特定のコマンドを実行し、sudo対話型シェルを起動でき、デフォルトモードが異なります。

最も一般的には名前付きグループがあります。wheel、すべてのコマンドを任意のユーザーとして実行できます。場合によっては、ユーザーが特定のユーザーとして特定のコマンドのみを実行するように制限したい場合がありsudoますsu

を使用すると、su実際にはrootまたは他のユーザーになります。 Bobというユーザーになるには、Bobのパスワードが必要です。ルートになるには、ルートパスワード(マルチユーザーシステムで定義されている)が必要です。

sudoまた、設定ルールに応じて/etc/sudoers許可されている限り、自分のパスワードを使用してすべてのユーザーにすることができます。sudoユーザーが実行できるコマンドを制限し、特定のユーザーのパスワードを公開できないようにしたり、特定のユーザーがパスワードをまったく持たず、定期的にログインできないようにします。

ルートになると、すべてにアクセスできます。他のユーザーのアカウントに不正にアクセスする人はrootパスワードを取得できず、sudo何を使用できるかについての定義もありません。

これらすべては、自分のパスワードだけを使ってルートになる方法のチュートリアルであるsudo -V[このリンク][1]のようなものを見るまでは意味があります。sudo su -

どのユーザーでもrootパスワードなしでrootになることができれば、不正アクセスからユーザーファイルを保護するメカニズムは何ですか? [1]:http://home.ubalt.edu/abento/linux/terminal/sudo.html

まずsudo -V、バイナリバージョンを印刷し、以降のsudoセクションsudo -vに関係なくキャッシュされた資格情報を確認します。

第二に、これはかなり愚かなことです。指定されたユーザー()で対話型シェルを起動するオプションがsudo suすでにあり、1つの権限承認ツール()を実行して別の権限承認ツール()を実行するのは本当に愚かなためです。sudosudo -isudosu

第三に、「全ユーザー」は必ずいいえルートになることができます。可能であれば、システム全体が完全に安全ではないでしょう。 rootユーザーは強力な権限を持っており、何でもすることができ、rootとしてコマンドを実行することはその目的の1つにすぎませんsudo。特定のユーザーが特定のユーザーとして特定のコマンドを実行できるようにする一般的な承認ツール。

答え3

短い答えはできないということです。

誰か(例えば、simth)がsudoerグループに参加することを許可した場合、その人はコマンドを発行してsudo su -からrootになり、他のユーザー(wessonなど)になることがあります。これはsimthにrootパスワードを提供する別の方法です。しかし、彼(Smith)はルートパスワードを変更できます。

また気づいた

/etc/sudoers1)1行に割り当てる必要があります

%sudo   ALL=(ALL:ALL) ALL

2)smith(上記の例では)はsudoグループになければなりません。

これはデフォルト設定ではありません。

アクセスを許可するには、誰かを完全に信頼する必要がありますsudo su -

答え4

これらの答えのどれもこの問題を解決しません。正解は、ファイル権限を使用して、すべてのユーザーがrootを含む他のユーザーのファイルにアクセスするのを防ぎます。はい、ルートがファイル(またはディレクトリ、つまりファイル)を読み書きするのを防ぐ方法があります。

たとえば、ディレクトリには次の項目を含めることができます。

drwxrwxr-x 13ルートルート8192 1月17日15:38 bash-5.2.15 drwxr-xr-x 15ルートルート4096 1月20日08:13ビットコインdrwxr-xr-x 6日16:37 Boost_1_84_0 -rwx - ----- 1ルートルート13210 1月19日17:44 doit_configure -rwx------ 1ルートルート7491 10月17日11:44 doit_configure_ba

ディレクトリは「d」で始まります。通常のファイルは「-」で始まります。その後、ファイル/ディレクトリに対する権限があります。たとえば、rwxrwxrwx は所有者、グループ、その他の 3 つの部分に分けられます。 r=読み取り、w=書き込み、x=実行権限。

「su」と「sudo」コマンドユーティリティはアクセスに役立ちますが、実際には元の質問に対する答えではありません。

関連情報