一部のアプリケーションでは、パスワードをパラメータとして渡すことができます。たとえば、
mysql --user=user_name --password=your_password db_name
安全ですか?入力したパスワードがbash履歴に保存されるだけでなく、誰かがw
適切なタイミングでコマンドを入力し、プロセスの完全なコマンドライン(パスワードを含む)を表示できます。
驚くべきことに、すべてのユーザーは現在実行中のコマンドを見ることができます。
ベストアンサー1
システム内のすべてのプロセスのコマンドラインパラメータは「公開」と見なされます。もちろんw
、コマンドだけでなくps
他の多くのコマンドでもこの情報にアクセスできます。top
実際、この情報を取得するために特別な権限は必要ありません。 Linuxでは/proc/<pid>/cmdline
。
w
top
これは、またはps
欠陥や安全でない動作ではありませんcat
。代わりに、マルチユーザーシステムのコマンドラインから機密情報を絶対に渡さないことは責任です。
コマンドラインでパスワードを許可するほとんどのユーティリティは、これが推奨されていないことを示します。たとえば、mysql
マンページは次のようになります。
コマンドラインでパスワードを指定することは安全ではないと見なされるべきです。セクション5.3.2.2「パスワードセキュリティのエンドユーザーガイド」を参照してください。オプションファイルを使用すると、コマンドラインにパスワードを入力する必要がなくなります。
ちなみに、環境変数にパスワードや機密データを渡すことはあまり安全ではありませんが、実際にはほとんどのシステムでは安全ではありません。