ユーザーが他のユーザーの現在のコマンドラインを表示できるマルチユーザーオペレーティングシステムはどれですか?


13

私はのマンページをunzip読んでいて、次のものにぶつかりました

-P password
       use password to decrypt encrypted zipfile entries (if  any).   THIS
       IS  INSECURE!   Many  multi-user operating systems provide ways for
       any user to see the current command line of any other user; even on
       stand-alone systems there is always the threat of over-the-shoulder
       peeking.

クリアテキストでパスワードを入力する(と彼らがシェル履歴に終わるもの)ではないのセキュリティ対策はもちろん本当ですが、私はそこにどこからオペレーティングシステムがあることを信じるのは難しいそれを見つけるすべてのユーザーがコマンドライン見ることができる他のユーザー。誰かが私に例を与えることができますか?


私は信じているpstopなど、UNIXのための答えです。


キーボードドライバー)
-STTR

@STTRハードウェアについてほとんど知らないので、キーボードドライバーがすべてのユーザーに平等かつフルアクセスを与えるかどうかはわかりませんが、それは確かにOSではなく、ttyが接続されていません。
4ae1e1

1
コマンドをbash履歴に入れないようにする場合は、コマンドの前にスペースを入れてください。
-joshreesjones

回答:


4

私の推測では、Unix / Linuxシステムでを使用lsofすると、ユーザーの操作が明らかになる可能性があります。lsofシステムで開いているファイルのリストを表示するロジック。そしておそらく、巨大なファイルを解凍している場合、誰かが気づいてアクティビティを覗くのに十分な時間開いたままになります。ちなみに、Bashスクリプトを作成し、それを1分ごとにcronジョブ経由で実行して、開いているファイルのアクティビティの進行中のログを収集することは、かなり簡単です。

しかし、それはまだ私には間違っています。私が意味するlsof、潜在的にインラインMySQLのパスワードのようなものをこのように公開しません。しかし、sudo/ root権限のない通常lsofのユーザーがそのような他のユーザーのアクティビティを見ることができるかどうかについては、100%ではありません。


3
ええ、あなたは間違いなく正しい軌道に乗っています。私が考えてlsof、他のユーザーのショー開いているファイルと、あなたは(私の機関のサーバー上でテスト)システム特権を必要としません。同様に、psおよびtop他のユーザーのコマンドラインを明らかにする。
4ae1e1

1
私はさらにのmanページを確認しpstopそしてlsofおよび特権の言及は認められませんでした。この質問もあります:プロセスを他のユーザーから見えないようにする方法は?。ですから、コマンドラインは、UNIXシステム上のすべての人に実際に見えると思います。うーん、大きな驚き。
4ae1e1

私は知りましたがttysnoopconspy彼らがルート権限を必要とするかどうかはわかりません。
ビナヤック

lsofコマンドラインのパラメーターを表示できるようにするために渡すオプションはどれですか?たとえば、lsof -a +c0 /dev/null長いコマンド名は表示できますが、コマンドに渡されるパラメーターは表示できません。私は何を取りこぼしたか?:-)
ハスター

4

Unixは「ps」を許可します。また、Unixには通常、実行中のユーザーを表示する「w」コマンドがあります。「w」は一般的に端末サイズに基づいてコマンドを切り落とす可能性がありますが、それはオーバーライドできます。(簡単な方法の1つは、幅の広い端末を使用することです。)

これはおそらく、複数のUnixライクシステム(Linux、BSDシステム、Solarisなど)にも影響します。

Microsoft Windowsではこれもタスクマネージャーに表示されると思います。ユーザーアカウント制御が必要になる可能性があるため、Windows Vistaおよびユーザーアカウント制御ではあまり一般的ではありません。しかし、WinXP / Server2003以前では、このような制限はより緩いものだったかもしれません。NET USEがアスタリスクのサポートを開始し、ユーザーにパスワードの入力を求める理由があります。と:

WMIC /NODE:ComputerName PROCESS LIST

ユーザーは、実行されているコマンドを見るために同じコンピューターにいる必要はないでしょう。率直に言って、実行しているユーザーに関係なく、TaskList、TList、およびPSListの複数(すべてMicrosoftが無料で配布)が、何が起こっているかを確認する機能もおそらくサポートしていると思います。少なくとも、管理者権限を持つユーザー。これは、Vistaより前のオペレーティングシステムではより一般的でした。(Win9xでは、一般的な標準はすべてのユーザーが管理者のような能力を持っていることでした。)引用しているドキュメントであるInfo-ZipはWinXPよりもかなり古いことに注意してください。オフハンドWin95よりも古いと思います。

古いマルチユーザーシステムでは、機密性はそれほど大きな懸念ではありませんでした。他のユーザーが実行していたコマンドなど、コンピューターが何をしているのかを見ることができるのは、おそらくセキュリティのネガティブな侵害ではなく、ポジティブな機能と見なされていました。おそらく、より適切な質問は次のとおりです。ユーザーがコンピューターで実行されているコマンドを表示することをサポートしていない主要なマルチユーザーOSはありますか?

より安全なアプローチは、機密性の高いパスワードをコマンドラインに入力しないことです。別のオプションとして、パスワードをファイルに入れてから、コマンドラインでそのファイルを指定する方法があります。例えば:

type pwfile | command

少なくともそのように、ファイルシステムの実装に基づく許可は、おそらくある程度の保護を提供します。


1
Windowsで別のユーザーのプロセスを表示するには、管理者である必要があります。
モシェカッツ

4

root権限のzip -PThat_Password ...ない別のユーザーのコマンドを表示するLinuxの一部の方法(すべてではありません):

  • cat /proc/24695/cmdline PIDが24695の場合...

    zip-P That_Password

    注:スペースはありませんが、パスワードを推測することは可能です

  • grep -H -e "zip" /proc/[0-9]*/cmdline

    バイナリファイル/ proc / 24695 / cmdlineが一致

    それがうまくいけば、テキストベースのcat他のすべてのものが動作します...

  • pgrep -a zipオプション-aは、完全なコマンドラインとプロセスIDをリストします。(の古いバージョン[例<2008]では常に使用できるとは限りませんpgrep

    24695 zip -P That_Password

そしてもちろんopは言及します

  • ps -aux | grep zip

    That_User 24695 1.9 0.0 15012 1192 pts / 40 T 12:37 0:45 zip -P That_Password

  • top -c -b -n 1 | grep zip そのようなものでその答え

    24695 That_User 20 0 15012 1192 820 T 0.0 0.0 0:45.12 zip -P That_Password


@JakeGould少なくとも私のシステムでは、cat /proc/24695/cmdlineスペースなしで出力するようなコマンドがあります...-
Hastur

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