Bagaimana saya bisa mendaftar semua akun pengguna di terminal?


74

Bagaimana saya bisa mendaftar semua akun pengguna lokal di Terminal (apakah masuk atau tidak?) Perintah usersatau whotidak memberikan informasi ini. Versi OS X adalah 10.6.8.

Saya telah melihat perintah yang disarankan ini - dscacheutil -q group

Tetapi hanya mencantumkan grup pengguna domain dan akun non-lokal.


1
Sebagai pengguna AIX yang lama, saya sangat merindukan perintah manajemen sistem yang mereka masukkan ke dalam unix mereka. Pengguna akan senang memiliki untuk tujuan ini.
bmike

Jawaban:


68

Bagaimana tentang

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'

Saya suka opsi ini. Ini mengembalikan banyak akun yang dimulai dengan garis bawah. Adakah cara untuk memfilter ini? misalnya _softwareupdate, _mysql
codecowboy

9
Pipa hasilnya melalui grepdscl . list /Users | grep -v ^_.*
user151019

Sangat keren! Saya harus ingat yang ini.
daviesgeek

5
Ini sangat mudah untuk dikomit juga.
Kelly


10

Akun pengguna sejak 10.6 dikelola oleh OpenDirectory. File backend terkait dengan pengguna untuk OpenDirectory ada di sini:

/var/db/dslocal/nodes/Default/users

Menjalankan ls *dalam direktori ini akan menghitung semua pengguna lokal yang terdaftar pada sistem. Eksekusi plutil -p <file>.plistakan memungkinkan Anda membaca beberapa properti untuk akun pengguna tertentu (yaitu jalur direktori home saat ini).

Ini agak tidak berdokumen jadi saya menerima downvotes. Namun, metode ini dapat digunakan untuk memeriksa sistem yang tidak berjalan, dan yang pengguna hanya memiliki gambar disk offline.


Saya suka, tetapi diperlukan sudo / root untuk bekerja, pengguna admin std mendapat kesalahan izin. dsclbekerja untuk admin std.
JL Peyret

6

dscacheutil mengembalikan lebih dari sekadar pengguna lokal, misalnya setiap pengguna yang saya tanyakan Layanan Direktori untuk juga ditampilkan.

Saya menemukan ini lebih bermanfaat:

dscl . list /Users | grep -v "^_"

Meskipun itu juga mengembalikan suka daemon, nobodydan root.


4

JMTCW untuk membuat ulang /etc/passwdsetara baris perintah yang ramah (meskipun tidak dalam urutan yang sama):

dscacheutil -q user |
    paste -d " "  - - - - - - - - |
    sed 's/^name: //;s/ [^[:space:]]*: /:/g'

Atau jika Anda lebih suka output yang dipisahkan ruang (tetapi mem-parsing bidang GECOS akan sedikit lebih rumit:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -

2

Jika tidak ada direktori home pengguna yang dipindahkan maka ls /usersakan dilakukan. Kecuali itu juga akan daftar direktori seperti 'Dibagikan'.


2
Tidak pernah melakukan ini. Ada lebih dari Shareditu yang bisa ada di sana.
hamstergene

-3

Anda juga dapat mengetik:

whoyang memberi tahu Anda siapa yang masuk, dan dari mana asalnya. Berguna jika Anda mencari seseorang yang sebenarnya secara fisik di gedung yang sama dengan Anda, atau di beberapa lokasi tertentu lainnya.

wyang memberitahu Anda siapa yang masuk, dan apa yang mereka lakukan. Sangat berguna: bagian 'idle'. Ini memungkinkan Anda untuk melihat apakah mereka benar-benar duduk di sana mengetik di keyboard mereka saat ini.

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.