Terminaldeki tüm kullanıcı hesaplarını nasıl listeleyebilirim?


74

Terminaldeki tüm yerel kullanıcı hesaplarını nasıl listeleyebilirim (oturum açmış olsun veya olmasın). Komutlar usersveya whobu bilgileri sağlamıyor. OS X sürümü 10.6.8'dir.

Bu önerilen komutu gördüm - dscacheutil -q group

Ancak, yalnızca etki alanı kullanıcı gruplarını ve yerel olmayan hesapları listeler.


1
Uzun süredir AIX kullanıcısı olarak, unix'lerine yaptıkları sistem yönetimi komutlarını özlüyorum. Kullanıcı bu amaç için iyi olurdu.
bmike

Yanıtlar:


68

Peki ya

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

Bu seçeneği sevdim. Ancak, alt çizgi ile başlayan bir sürü hesap döndürür. Bunu filtrelemenin bir yolu var mı? örn. _softwareupdate, _mysql
codecowboy

9
dscl . list /Users | grep -v ^_.*
Sonucu

Çok havalı! Bunu hatırlamak zorunda kalacağım.
daviesgeek

5
Bu da hafızaya almak çok kolay.
Kelly,

41

Bunu dene. Kayıp gizli hesabı bulmak için kullandım.

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

3
Tam olarak @Mark’ın burada söylediği de buydu .
Emil,

Gizli hesapların amacı nedir?
SuperUberDuper

Üideni de görmek için kullanındscl . list /Users UniqueID | grep -v '^_'
Marián Černý

Ya kullanıcı orada değilse?
Cameron

10

10.6'dan beri kullanıcı hesapları OpenDirectory tarafından yönetiliyor. OpenDirectory kullanıcıları ile ilgili arka uç dosyaları burada:

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

ls *Bu dizinde yürütülmesi sistemde kayıtlı tüm yerel kullanıcıları numaralandırır. Yürütme plutil -p <file>.plist, belirtilen kullanıcı hesabı için bazı özellikleri okumanıza izin verir (örn. Geçerli giriş dizini yolu).

Bu oldukça belgesiz, bu yüzden aşağı oyları kabul ediyorum. Ancak, bu yöntem çalışmayan ve kullanıcının yalnızca çevrimdışı bir disk görüntüsüne sahip olduğu bir sistemi incelemek için kullanılabilir.


Sevdim ama çalışması için sudo / root gerekli, std admin kullanıcısı izin hatası aldı. dsclstd admin için çalışıyor.
JL Peyret

6

dscacheutil yalnızca yerel kullanıcılardan daha fazlasını döndürür, örneğin Dizin Hizmetleri'ni sorguladığım tüm kullanıcılar da gösterir.

Bunu daha faydalı buldum:

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

Her ne kadar o da gibilerine döndürür daemon, nobodyve root.


4

Bir komut satırı dostu /etc/passwdeşdeğerini yeniden oluşturmak için JMTCW (tam olarak aynı sırayla olmasa da):

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

Veya boşlukla ayrılmış bir çıktıyı tercih ederseniz (ancak GECOS alanını ayrıştırmak biraz daha karmaşık olacaktır:

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

2

Hiçbir kullanıcı giriş dizini taşınmamışsa, o ls /userszaman yapacaktır. Bunun dışında 'Paylaşılan' gibi dizinleri de listeler.


2
Bunu asla yapma. Orada Sharedolabileceğinden çok daha fazlası var.
hamstergene

-3

Ayrıca şunu da yazabilirsiniz:

whoBu size kimin giriş yaptığını ve nereden geldiklerini söyler. Fiziksel olarak sizinle aynı binada veya başka bir belirli yerde bulunan birini arıyorsanız, kullanışlıdır.

wBu size kimin giriş yaptığını ve ne yaptıklarını söyler. Özellikle yararlı: 'boşta' kısmı. Bu, şu anda orada klavyelerinde yazarak orda oturup oturmadıklarını görmenizi sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.