権限はログイン方法によって異なります: ssh/su/sudo

権限はログイン方法によって異なります: ssh/su/sudo

userリモートLinuxシステムにアクセスできるので、次のことができます。

sudo su - other_user

とりわけ、これによりauthorized_keysforに自分の公開鍵を追加でき、IDを使用してこのシステムにother_user効果的にアクセスできます。sshother_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ファイル)を検索する必要がありますが、パスワードを忘れてしまうのとは異なり、コンピュータ上のファイルだけを確認してください。

関連情報