user
リモートLinuxシステムにアクセスできるので、次のことができます。
sudo su - other_user
とりわけ、これによりauthorized_keys
forに自分の公開鍵を追加でき、IDを使用してこのシステムにother_user
効果的にアクセスできます。ssh
other_user
興味深いことに、user
私のようにいいえ私がやっているように、次のことを直接実行できます。いいえ私が知る必要がある(私も知る必要がある)パスワードother_user
:
su - other_user
このセキュリティポリシーは妥当ですか?どう違いますか?いいえother_user
パスワードを知っていたらできる ssh
または sudo su -
入力するother_user
?
より一般的には、ログイン方法によって実行できるタスクと実行できないタスクの違いは何ですかother_user
?
答え1
このセキュリティポリシーは妥当ですか?
はい、いいえ。いいえ、other_userのデータを保護しないためです。ただし、other_userのパスワードは保護されています。これは重要ではないように見えるかもしれませんが、少なくとも1つの重要なタスクを実行できないことを意味します。つまり、通常、アカウントを使用している人がそのアカウントにアクセスできないようにパスワードを変更します。
パスワードを秘密にしてsu
維持するための別の結果は/var/log/auth.log
次のとおりです。
Nov 8 08:08:10 ...(su:session): session opened for user other_user by (uid=1066)
[...]
Nov 8 09:38:10 ...(su:session): session closed for user other_user
あなたのuidが1066で、あなたのパスワードが秘密であると仮定すると、other_user
その90分間に奇妙なことが起こった場合、それがあなたであったのに十分な理由があります。私が働いていた場所丸太このような詳細は、してはいけないことをしている人を識別するために使用されます。
答え2
実行を通じてのみアカウントにアクセスできるため、su - other_user
できないこともあります。アカウントのログインシェルまたはログインシェルで実行できるプログラムのみを実行できます。ログインシェルが通常のシェルであるかどうかには違いはありませんが、シェルが次の場合はsh
違いはありません。bash
限られた殻または一種の特別目的プログラム。
アカウントに制限されたシェルがないと仮定すると、公開鍵を追加してリモート~/.ssh/authorized_keys
でログインできます。管理者は、必要に応じてホームディレクトリをユーザーが書き込めないようにしたり(ユーザーにとって非常に不便なため、汎用アカウントでは一般的ではない)、ディレクトリを変更できないようにしたり、サーバー.ssh
のオプションを使用してこの機能を無効にしたりできます。 。
パスワードがわからないので変更できません。コマンドは、passwd
現在のパスワードを求めるメッセージを表示します。
パスワードがわからない場合は、管理者がパスワードを変更せずにアクセス権を取り消すことができるという意味でもあります。彼らはバックドア(SSHキー、setuidファイル)を検索する必要がありますが、パスワードを忘れてしまうのとは異なり、コンピュータ上のファイルだけを確認してください。