Sistem operasi multi-pengguna mana yang memungkinkan pengguna untuk melihat baris perintah saat ini dari pengguna lain?


13

Saya membaca halaman manualunzip , dan berlari ke yang berikut

-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.

Walaupun tindakan pencegahan keamanan untuk tidak mengetik kata sandi dalam teks yang jelas (dan membuatnya berakhir dalam sejarah shell) tentu saja benar, saya merasa sulit untuk percaya bahwa ada sistem operasi di luar sana di mana setiap pengguna dapat melihat baris perintah dari yang lain pengguna . Bisakah seseorang memberi saya contoh (termasuk sistem warisan)?


Saya percaya ps,, topdll. Adalah jawaban untuk UNIX.


driver keyboard)
STTR

@ STTR Saya tahu sedikit tentang perangkat keras jadi saya tidak yakin apakah driver keyboard memberi semua pengguna akses yang sama dan penuh, tapi itu jelas bukan OS dan tidak ada tty yang melekat padanya.
4ae1e1

1
Hanya sebuah catatan, jika Anda ingin menjaga agar perintah tidak masuk ke bash history, awali perintah dengan spasi.
joshreesjones

Jawaban:


4

Dugaan saya adalah bahwa pada sistem Unix / Linux menggunakan lsofberpotensi mengekspos interaksi pengguna. Logikanya yang lsofmenunjukkan daftar file yang terbuka pada sistem. Dan mungkin jika seseorang membuka ritsleting file besar maka masih akan terbuka cukup lama bagi seseorang untuk memperhatikan dan kemudian mengintip aktivitas. Heck, itu akan cukup sepele untuk menulis skrip Bash dan menjalankannya setiap menit atau lebih melalui pekerjaan cron untuk mengumpulkan log aktivitas file yang sedang berlangsung.

Tapi itu masih berdering salah bagiku. Maksud saya lsofberpotensi mengekspos sesuatu seperti inline password MySQL dengan cara ini. Tapi saya tidak 100% apakah pengguna normal tanpa sudo/ hak root akan dapat melihat lsofaktivitas dari pengguna lain seperti itu.


3
Anda pasti berada di jalur yang benar. Saya pikir lsofmenunjukkan file terbuka dari pengguna lain dan Anda tidak perlu hak istimewa tinggi (diuji di server institusi saya). Demikian pula, psdan topungkapkan baris perintah pengguna lain.
4ae1e1

1
Saya selanjutnya memeriksa halaman manual ps, topdan lsofdan tidak menemukan hak istimewa. Ada juga pertanyaan ini: Bagaimana membuat proses tidak terlihat oleh pengguna lain? . Jadi saya kira baris perintah memang terlihat oleh semua orang di sistem UNIX. Hmm, kejutan besar.
4ae1e1

Saya mengetahui tentang ttysnoopdan conspybagaimanapun saya tidak yakin apakah mereka memerlukan hak akses root atau tidak.
Vinayak

Apa opsi untuk meneruskan lsofyang memungkinkan untuk melihat parameter dari baris perintah? dengan misalnya lsof -a +c0 /dev/nullsaya dapat melihat nama perintah yang panjang tetapi tidak parameter dilewatkan ke perintah. Apa yang saya lewatkan? :-)
Hastur

4

Unix memungkinkan "ps". Selain itu, Unix umumnya memiliki perintah "w" yang akan menunjukkan apa yang sedang dijalankan pengguna. "w" biasanya memotong perintah berdasarkan ukuran terminal, tetapi itu bisa ditimpa. (Salah satu cara mudah mungkin dengan menggunakan terminal yang lebih luas.)

Ini mungkin juga akan mempengaruhi banyak sistem mirip Unix (Linux, sistem BSD, Solaris, dll.)

Saya percaya bahwa Microsoft Windows juga akan menunjukkan ini di Task Manager. Yah, mungkin itu kurang umum dengan Windows Vista dan Kontrol Akun Pengguna, karena Kontrol Akun Pengguna mungkin diperlukan. Tapi kembali pada hari-hari di WinXP / Server2003 dan sebelumnya, pembatasan seperti itu mungkin lebih longgar. Ada alasan mengapa NET USE mulai mendukung tanda bintang dan kemudian meminta pengguna untuk kata sandi. Dengan:

WMIC /NODE:ComputerName PROCESS LIST

seorang pengguna mungkin bahkan tidak perlu berada di komputer yang sama untuk melihat perintah yang dijalankan. Dengan begitu saja, saya menduga bahwa banyak TaskList, TList, dan PSList (semua didistribusikan secara bebas oleh Microsoft) mungkin juga mendukung kemampuan untuk melihat apa yang terjadi, terlepas dari apa yang sedang dijalankan pengguna. Paling tidak, pengguna dengan hak istimewa Administrator, yang lebih umum pada sistem operasi pra-Vista. (Di Win9x, standar umum adalah bahwa semua pengguna memiliki kemampuan seperti Administrator.) Ingatlah bahwa Info-Zip, yang merupakan dokumentasi yang Anda kutip, sedikit lebih tua dari WinXP. Begitu saja saya pikir ini lebih tua dari Win95.

Dengan sistem multi-pengguna yang lebih tua, kerahasiaan tidak menjadi masalah besar. Mampu melihat apa yang dilakukan komputer, termasuk perintah apa yang dijalankan pengguna lain, mungkin dipandang sebagai fitur positif, bukan pelanggaran negatif dalam keamanan. Mungkin pertanyaan yang lebih berlaku adalah: Apakah ada OS multi-pengguna utama yang tidak mendukung pengguna untuk dapat melihat perintah apa yang dijalankan di komputer?

Pendekatan yang lebih aman adalah tidak pernah memasukkan kata sandi sensitif pada baris perintah. Opsi lain mungkin untuk meletakkan kata sandi dalam file, dan kemudian tentukan file itu pada baris perintah. misalnya:

type pwfile | command

Setidaknya dengan cara itu, izin berdasarkan implementasi filesystem kemungkinan akan menawarkan perlindungan.


1
Untuk melihat proses pengguna lain di Windows, Anda harus menjadi administrator.
Moshe Katz

4

Beberapa (dan saya percaya tidak semua) cara Linux untuk melihat perintah zip -PThat_Password ...pengguna lain tanpa hak akses root :

  • cat /proc/24695/cmdline jika PID adalah 24695 ...

    zip-P That_Password

    Catatan: Tidak ada spasi tetapi Anda bisa menebak kata sandi

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

    File biner / proc / 24695 / cmdline cocok

    baik jika itu berfungsi cat, semuanya bekerja berdasarkan teks ...

  • pgrep -a zipopsi -a mencantumkan baris perintah penuh serta ID proses. (tidak selalu tersedia pada versi lama [mis. <2008] dari pgrep)

    24695 zip -P That_Password

dan tentu saja op disebutkan

  • 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 jawaban itu dengan sesuatu seperti

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


@ JakeGould Setidaknya pada sistem saya perintah seperti cat /proc/24695/cmdlinememberikan output tanpa spasi ...
Hastur

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.