なぜ誰かがコマンドラインでパスワードを使用するべきではないのですか?


33

なぜ人々はコマンドラインでパスワードを書くことを恐れるのですか?

履歴ファイルはにある~/.historyため、コマンドを実行したユーザー(およびルート)のみが使用できます。


2
いくつかのコマンドを履歴ファイルに記録することを避けることができます。で回答を参照してください歴史の中でコマンドを保つためには避けてくださいを
リュックM

5
ユク!でパスワードを定義しexport mypass=secretてを使用する場合でも、表にa_command --password=$mypass表示さsecretpsます。
リュックM

回答:


51

コマンドラインは、履歴でのみ使用できるわけではありません。また、たとえば、ファイルシステムの出力で、ps -ocmdまたは/procファイルシステムを介して利用できます。(/proc/<pid>/cmdlineps読み取り場所。

また、ユーザーのホームディレクトリは、多くの場合、世界またはグループが読み取り可能です。履歴ファイルはユーザーが読めるようにするだけでかまいませんが、削除や再作成に耐えられない場合があります。


17

コマンドラインのパスワードは、ずっと悪い考えです。他の回答で説明した方法に加えて:

  • / proc
  • プロセスリスト(ps
  • ユーザーの履歴ファイル

ユーザーコマンドは、次の場所にも表示されます。

  • 監査ログ
  • / var / log / *

さらに、ユーザーがシステム間でログインするときにユーザーのコマンドが表示されることもあるため、一般にこれは悪い習慣であり、常に避ける必要があります。


3
/ var / logリファレンスの+1-多くの場合、重要なシステムログは他の場所に送信でき、必ずしも同じシステムにとどまるとは限らないことに注意してください。したがって、パスワードが誤ってクリアテキスト形式でネットワークを介して送信されることもあります。
マークグロソップ

11

問題は、コマンドの実行中のパラメーターの可視性です(ほとんどの場合、rootであっても他のユーザーに)。の出力を参照してください

ps -eo pid,user,args
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.