マルチユーザーシステムでは、ユーザーがrootを介して他のユーザーのファイルにアクセスするのを防ぎますか?文脈に応じて、質問は次のように私の理解に基づいています。
root権限に関連する2つのコマンドがありますsudo
。su
を使用すると、sudo
他のユーザー(ルートを含む)になりません。sudo
ユーザーに代わって実行される事前定義済みの承認済みコマンドのリストがあります。ルートや他のユーザーではないため、自分のパスワードを使用して簡単に認証できます。
を使用すると、su
実際にはrootまたは他のユーザーになります。 Bobというユーザーになるには、Bobのパスワードが必要です。ルートになるには、ルートパスワード(マルチユーザーシステムで定義されている)が必要です。
参考資料:Howtogeek.com:
su
rootユーザーアカウントに切り替え、rootアカウントのパスワードが必要です。sudo
root 権限で 1 つのコマンドを実行すると、root ユーザーに切り替えられません。
そして
sub bob コマンドを実行すると、Bob のパスワードを入力するよう求められ、シェルは Bob のユーザーアカウントに切り替えられます。コンピュータ希望ネットワーク
'sudo'は、rootコマンドを実行する権限を持つユーザーを表すルートバイナリsetuidです。
ルートになると、すべてにアクセスできます。他のユーザーのアカウントに不正にアクセスする人はrootパスワードを取得できず、sudo
何を使用できるかについての定義もありません。
次のことを見るまで、これはすべて意味があります。このリンクsudo -V
、ここに自分のパスワードを使ってルートになるためのチュートリアルがありますsudo su -
。
どのユーザーでもrootパスワードなしでrootになることができれば、不正アクセスからユーザーファイルを保護するメカニズムは何ですか?
答え1
これ基本sudo
との違いは、su
認証に使用されるメカニズムです。ユーザーはパスワード(徹底的に保護する必要があります)をsu
知る必要があり、通常はユーザーに自分のパスワードを要求するように設定されます。すべてのユーザーが混乱を招くのを防ぐために、幸いなことに、このコマンドで解放された権限はファイルを使用して構成できます。root
sudo
sudo
/etc/sudoers
これら2つのコマンドはしばしば他のユーザーとしてコマンドを実行しますroot
。
sudo su -
ユーザー(またはユーザーが属するグループ)がファイル/etc/sudoers
に構成されているため、提供された例で機能します。つまり、許可するsudo
これにより一時的に権限をsudo
取得し(ユーザー名がroot
指定されていない場合はデフォルト)。パスワードを知らなくてもアクセスできます。root
su -
root
root
逆に、ユーザーに使用を許可しないと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 -
root
sudo
警告する:visudo
ファイルを編集するには、必ずこのコマンドを使用してください。sudoers
編集内容を確認し、誤って設定されたファイル(構文エラーのため)により、sudo
エラーに対して編集を使用できないという難しい状況を防ぐことができます。これは、root
このアカウントがデフォルトで無効になっているDebian / Ubuntuとバリアントの場合に特に当てはまります。
答え2
root権限に関連する2つのコマンドがあります
sudo
。su
を使用すると、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つの権限承認ツール()を実行して別の権限承認ツール()を実行するのは本当に愚かなためです。sudo
sudo -i
sudo
su
第三に、「全ユーザー」は必ずいいえルートになることができます。可能であれば、システム全体が完全に安全ではないでしょう。 rootユーザーは強力な権限を持っており、何でもすることができ、rootとしてコマンドを実行することはその目的の1つにすぎませんsudo
。特定のユーザーが特定のユーザーとして特定のコマンドを実行できるようにする一般的な承認ツール。
答え3
短い答えはできないということです。
誰か(例えば、simth)がsudoerグループに参加することを許可した場合、その人はコマンドを発行してsudo su -
からrootになり、他のユーザー(wessonなど)になることがあります。これはsimthにrootパスワードを提供する別の方法です。しかし、彼(Smith)はルートパスワードを変更できます。
また気づいた
/etc/sudoers
1)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」コマンドユーティリティはアクセスに役立ちますが、実際には元の質問に対する答えではありません。