背景
su -
、Sudo su -
、Sudo <command>
の違いを知っています。
su -
-ユーザーをrootに切り替えます。rootパスワードが必要ですSudo su -
-ユーザーをrootに切り替えます。現在のユーザーのパスワードのみが必要ですSudo <command>
-特定のコマンドに対してのみルートアクセスを許可します。現在のユーザーのパスワードのみが必要です私の質問は、Sudo su -
の使用が本番環境で安全な方法であるかどうかについてです。
いくつかの考え:
Sudo su -
を許可すると、個々のユーザーパスワードに応じてrootアカウントへのアクセスが可能になるため、セキュリティリスクが生じるようです。もちろん、これは厳密なパスワードポリシーを適用することで軽減できます。管理者が実際のrootパスワードを共有する必要があるため、su -
の方が良いとは思いません。
ユーザーがrootアカウントに完全に切り替えることを許可すると、システムに誰が変更を加えたかを追跡することがより困難になります。複数のユーザーにSudo su -
のアクセス権が与えられているという私の仕事を目にしたことがあります。ユーザーがシステムにログインするときに最初に行うことは、作業を開始する前にSudo su -
を実行することです。その後、ある日何かが壊れ、だれが間違ったディレクトリでrm -rf *
を実行したか追跡できなくなります。
質問
上記の懸念を踏まえて、ユーザーがSudo su -
またはsu -
を使用することを許可することは良い考えですか?
管理者がSudo su -
ではなくsu -
またはSudo <command>
のユーザーアカウントを構成する理由はありますか(遅延を除く)?
注: rootユーザーの直接sshアクセスが無効になっている場合、Sudo su -
またはsu -
を実行しているユーザーがシステム変更を必要とする管理者である場合は無視しています。
あなたのケースを見てみましょう:
su -
ルート環境を使用して、ルートユーザーとして/ bin/shを実行します。 rootパスワードが必要であり、syslog設定に応じてロギングがログに記録される場合があります(通常、デフォルトでは/var/log/auth.logです)。
Sudo /bin/sh
現在の環境変数のセットを使用して、シェルをrootユーザーとして実行します(sudoersファイルで定義されているいくつかの例外はあります)。パスワードはソースユーザーのパスワードであり、ルートユーザーのパスワードではありません。 Sudoは通常ログに記録されます。
Sudo su -
シェル(通常は/ bin/sh)をrootユーザーとして実行し、rootユーザーとして環境を設定します。これにはソースユーザーのパスワードが必要で、通常はログに記録されます。
場合によっては、独自の環境よりもルート環境を用意する必要があるため、su-が適切な方法です。どちらの場合でも、Sudoは引き続きShellコマンドの使用を記録することに注意してください。
*上記の懸念事項を踏まえて、ユーザーがSudo suを使用できるようにすることは常に良い考えですか?
いいえ、私の意見ではありません。 rootパスワードを必要としない場合を除いて、suを許可するよりも実用的な利点はありません。
またはsu-まったく?
私は常にルートログオンを無効にしているので、suが必要であり、バランスが取れていると、サーバーの安全性が高まります。
OPは、一般的な使用を許可/奨励しないための十分な理由をたくさん提供しているようですSudo bash
またはSudo su -
それにより、内部が通常ログに記録されない強力なモードに切り替わります。そして、彼らはそのモードにいることを忘れて何かをするかもしれません...残念です。
エルゴ、ほとんどのユーザーがSudo on/a/particular/command/
またはコマンドのリスト。これにより、すべてのSudoコマンドがログに記録されます。
実際に例外が発生しますか?承知しました。制限なしの怠惰な慣習に戻るためのそのような例外への反応はSudo su
-おそらくそうではない。