サーバー管理でsudoまたは単にsu rootを使用する必要がありますか?


8

どちらのアプローチが優れていますか?

デスクトップの使用については、sudoの方が良いようです。

  • 通常のユーザーとしてより一貫した履歴を持つことができます
  • 2つのパスワードを覚えておく必要はありません。これは、管理作業を定期的に行わない場合に特に当てはまります。
  • インストール時に追加のrootアカウントを作成する必要はありません。

しかし、サーバー管理についてはどうでしょうか?

サーバーでは通常、すでにrootアカウントが作成されており、管理作業を頻繁に行う可能性があります。したがって、sudoの利点はもはや保持されていないようです。

さらに、ほとんどのディストリビューションではコマンドラインでsuを設定するのは簡単です。ホイールグループにユーザーを追加するだけです。(あなたも渡すことができ-G wheelたときにuseraddする。)したがって、suコマンドを簡単にシェルスクリプトに自動化することができる設定。

しかし、sudoについては?visudo対話的に実行するよりも、まずユーザーを追加する必要があります。シェルスクリプトに自動化できないため、これは悪いことです。

(まあ、できます。たとえば、

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

しかし、少なくともそれは簡単ではありません。)

だからあなたの意見は何ですか?サーバー環境では、sudoまたはsu rootのどちらを好みますか?


これはwikiである必要があります。そうでない場合、主観的すぎるため、閉じられる可能性があります。
John Gardeniers、

主観的になりすぎているとは思いません。Raphinkの優れた回答が示すように、マルチユーザー環境では、sudoが推奨されます。
2009

それは主観的な質問ではないと思います。それはあなたがsudoが好きかどうかではなく、それが何らかの用途に適応しているかどうかです。
ℝaphink

ちなみに、特定のファイルをチェックするvisudo -c必要visudo -c -fがあると思うので、あなたのコマンドにも少し驚いています。
ℝaphink

@Raphinkはい、あなたは完全に正しいです。質問を編集しました。
2009

回答:


16

サーバーには確かにrootアカウントが必要ですが、特にマシンに複数のユーザーがいる場合は、sudo権限を付与することをお勧めします。これにはいくつかの理由があります。

  • 私はsudoを使用して、すべてのコマンドにすべての権限を付与するだけでなく、特定のコマンドを特定のユーザーとして特定の権限を付与することもしています。
  • ユーザーを機能グループに割り当てることにより、ユーザーを個別に管理するのではなく、sudoersでこれらのグループを使用してユーザーの権限を管理できます。
  • sudoアクセスは、どのユーザーがいつsudoを使用したかを含め、デフォルトでauth.logに記録されます。
  • sudoを使用すると、1つのファイルで複数のマシンの構成を管理できます。
  • 各ユーザーは自分のパスワードを保持するため、ユーザーが離れるときにrootパスワードを変更する必要はありません。

スクリプトでの管理については、sudoの新しいバージョンがインクルージョンをサポートしていますが、私はパペットを使用し、sudoersのコンテンツを連結するクラスを設定することを好みます。

PuppetをAugeasに関連付けて、sudoersファイルを管理することもできます。


3
実際、複数ユーザーのケースについては考慮していません。そうです、複数のユーザーがいる場合、sudoは明らかに勝者です。しかし、シングルユーザーの場合、私はまだsuで十分だと思います。PS人形について言及していただきありがとうございます。こんなかわいい道具を今まで知らなかっただけ。
2009

ちなみに、sudoersファイルをパペットでデプロイする前に検証したい場合は、それを実行する検証関数を手元に用意しています。
ℝaphink

1
sudoを使用する場合、ユーザーのパスワードに依存するだけでよいので、rootは有効なパスワードを持つ必要さえありません。誰かが去ったときにrootパスワードを変更する必要がないことに加えて、推測/破壊/ハッキングされる可能性のあるパスワードが1つ少なくなります。
シャノンネルソン

@ShannonNelsonレンタルサーバーには通常これらが付属しているため、ルートユーザーとパスワードについて言及していると思います。
AJP 2013年

1

(/ etc / sudoersを管理することになると)自分で物事を難しくしているようです。シンプルな

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

十分でしょう。visudoが行うことは、同時編集に対してファイルをロックし、ファイルが引き続き正しく解析されることを確認することだけです。


visudo -cを使用して、何か問題がある場合にファイルをチェックします。(そうすべきではありません。ただし、sriptを編集しているときに、一部の文字を入力し忘れた、またはさらに悪いことに、表示されていない特殊な特殊文字を含めた可能性があります。)しかし、私は同意します。
2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.