OS X'teki komut satırı aracılığıyla aktif kullanıcının adını nasıl alabilirim?


Yanıtlar:


197

'whoami' kullanımdan kaldırıldığından, kullanımı muhtemelen daha ileri uyumludur:

id -un

2
Hangi anlamda 'whoami' kullanımdan kaldırıldı? Eski olduğunu kim ilan etti?
Jonathan Leffler

2
@Jonathan: whoamiLeopard'daki man sayfası , ile değiştirildiğini doğruluyor id.
Naaff

Agh! Zamanın başlangıcından beri var olan bir şeyi neden değiştiriyorlar?
dmckee --- eski moderatör kedicik

29
Kim söyleyeceğim? <boom-chacka>
kent

27

Tam adı (kullanıcı adı yerine) görüntülemek istiyorsanız, -Fbayrağı ekleyin :

$ id -F
Andrew Havens

1
-F, Mavericks'te yasa dışı bir seçenektir - bu ilk ne zaman çalışmaya başladı?
Eli B.

11

ben kimim

DÜZENLE

Whoami yardımcı programı id (1) yardımcı programı tarafından kullanımdan kaldırılmıştır ve eşdeğerdir id -un. Komut id -p, normal etkileşimli kullanım için önerilir.


11

OS X'teki terminalin tıpkı unix gibi olduğundan oldukça eminim, bu yüzden komut şöyle olacaktır:

whoami

Şu anda üzerimde bir Mac'im yok, bu yüzden yanılıyorsam biri beni düzeltsin.

NOT - Yardımcı whoamiprogram kullanımdan kaldırılmıştır ve eşdeğerdir id -un. Size mevcut kullanıcıyı verecek


10

Via burada

/ Dev / console sahibinin kontrol edilmesi iyi çalışıyor gibi görünüyor.

stat -f "%Su" /dev/console


1
Bu, bir makineye ssh'landıysanız ve bir kullanıcının yerel olarak oturum açıp açmadığını görmek istiyorsanız harika çalışır. Değilse, komut "kök" döndürür.
Tim Dearborn

4

Şu anda sisteme kimin giriş yaptığını bilmek istiyorsanız:

$ w
 5 gün 15:56:14, 20:58, 6 kullanıcı, ortalama yük: 0.43, 0.53, 0.50
KULLANICI TTY GİRİŞİ @ IDLE JCPU PCPU NE
me pts / 2 Cum19 1: 03d 0.98s 0.98s - / bin / bash
me pts / 3 09:55 6: 00d 0,43s 0,43s / bin / bash
me pts / 5 15:56 0.00s 0.23s 0.00sw

(Bu bir Linux sistemindendir; OS X'teki biçimlendirme biraz farklı olabilir, ancak bilgiler yaklaşık olarak aynı olmalıdır.)

Birden fazla giriş oturumu olabilir; Sonuçta UNIX, çok kullanıcılı bir sistem olacak şekilde tasarlanmıştır.


4

lognameKullanıcı bir sudoişlem yapıyor olsa bile, o anda oturum açmış olan kullanıcının kullanıcı adını görmek için Linux veya MacOS altında BSD Genel Komutlar Kılavuzundaki komutu da kullanabilirsiniz . Bu, örneğin sudo ile sistem çapında bir paket yüklerken bir kullanıcının crontab dosyasını değiştirirken yararlıdır:crontab -u $(logname)

Başına man logname:

LOGNAME(1)

NAME
    logname -- display user's login name

1
Bu kesinlikle en temiz ve en kolay çözümdür. Komutu çalıştıran kullanıcı ne olursa olsun çalışır.
Maxime Viargues

2

Soru tam olarak cevaplanmadı IMHO. Açıklamaya çalışacağım: Bir bash kabuğu komut prosedürünü planlayan bir crontab girdim var, bu da dosyalarımın bir kısmını temizliyor; ve tamamlandığında, OS X bildirim merkezini (komutla ) kullanarak bana bir bildirim gönderir osascript -e 'display notification .... Birisi (örneğin, eşim veya kızım) bilgisayarın mevcut kullanıcısını ona geçirir ve beni arka planda bırakırsa , bildirim gönderilirken cron betiği başarısız olur .

Öyleyse, şu anki kullanıcı kim demek Başka insanlar beni arka planda bırakarak etkili kullanıcı haline geldi mi? Do stat -f "%Su" /dev/consolegetirileri mevcut aktif kullanıcı adı?

Cevap Evet; şimdi crontab kabuk betiğim şu şekilde değiştirildi:

...
if [ "$(/usr/bin/stat -f ""%Su"" /dev/console)" = "loreti" ]
then /usr/bin/osascript -e \
  'display notification "Cleanup done" sound name "sosumi" with title "myCleanup"'
fi

2

MAC terminalinde kullanıcı adı almak kolaydır ...

Genellikle kullanmak whoamiiçinde terminali ...

Örneğin, bu durumda Tomcat Sunucusunu kurmak için buna ihtiyacım vardı ...

görüntü açıklamasını buraya girin



1

Bunu ortam değişkenlerinden de alabilirsiniz, ancak bu muhtemelen güvenli değildir, bu yüzden Andrew'un cevabıyla giderim.

printenv USER

Node gibi bir uygulamadan almanız gerekiyorsa, bunu gibi ortam değişkenlerinden almak daha kolaydır.

process.env.USER.


1

'Aktif kullanıcıyı' tanımlayın.

Soru 'oturum açmış kullanıcı kim' ise, 'kimim ben' veya 'whoami' sorun değil (farklı cevaplar verseler de - 'whoami' sadece bir kullanıcı adını bildiriyor; 'kimim ben' terminalde rapor veriyor ve giriş zamanı da).

Soru 'kabuğun etkin kimliği hangi kullanıcı kimliği' ise, o zaman 'kimlik' kullanmak genellikle daha iyidir. Bu, gerçek ve etkili kullanıcı kimliği ve grup kimliği ile ek grup kimliklerini de rapor eder. Bu, kabuğun SUID veya SGID çalıştırması önemli olabilir.

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.