Kullanıcıları Mac OS X Snow Leopard oturum açma ekranından gizleme


25

Her nasılsa, süper kullanıcı / kök olarak sahip olduğum postgres rolüne ayarlamak yerine işletim sistemimdeki _postgres kullanıcım için bir şifre ayarlamayı başardım. Bundan beri, hesap bölümünde ve gerçekten kaçınmak istediğim oturum açma ekranında görünen kullanıcıyla mücadele ediyorum. Bu konuda bazı dokümanlar okudum ve şifreyi, *bunu düzeltmek için gereken her şey için ayarladım . Fakat bunu boşuna yapmak için dscl ile ve olmadan yapılan birkaç denemeden sonra, artık ne yapacağımı bilmediğim bir noktaya geldim.

Bunu yapmanın bile zor olacağını düşünmedim, ama açıkça bir şeyi özlüyorum, peki bunu nasıl yapıyorsunuz?


_Postgres kullanıcınız için bir şifreniz olması hiç de kötü bir fikir değil.
Hasaan,

1
Postgres dokümanlar gerçekte tam tersini önerir, bu şekilde sadece sistem kullanıcıları postgreslere erişebilir ve hatırlanması gereken / daha az şifre / güvenlik riski vardır.
googletorp

Kullanıcıyı silmeyi ve yeniden oluşturmayı denediniz mi?
Chealion

Evet, bunu birkaç kez denedim. Bir şekilde bir parola olmaması yeterli olduğundan pasifi devre dışı olarak ayarlamanız gerekir. Bu üstesinden gelemediğim acı noktası.
googletorp

Yanıtlar:


31

Giriş penceresindeki sistem kullanıcılarını (kullanıcı kimlikleri <500 ise) gizlemenin en kolay yöntemi aşağıdaki komutu çalıştırmaktır:

sudo defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool TRUE

Alternatif olarak, çalıştırarak yalnızca kullanıcı adını manuel olarak gizleyebilirsiniz.

sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add '_postgres'

Gerekirse, 'Diğerleri ...' öğesini giriş penceresinden gizlemek için:

sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE

2
Bu biraz kesin bir çözümdür ve sorunu gerçekten "çözmez", sadece belirtileri gizler. MySQL ve benzeri şeyler için birçok farklı sistem kullanıcısına sahibim ve şifreleri '*' olarak işaretlendiğinden görünmüyorlar. Postgres kullanıcım için başarmaya çalıştığım şey bu. Gizlemek istediğim başka kullanıcılar olsaydı çözümün kötüydü ama başkalarını kullanarak oturum açabilecektin. Gerçekten köke gidip sorunu gizlemek yerine bunu düzeltmek istiyorum.
googletorp

1
Bu mükemmel bir cevap ve soruma kesinlikle cevap verdim. Ama muhtemelen haklısın, tam olarak sorduğunuz soru değil.
Bill Michell

3
Hide500Users bayrağı artık aslan altında çalışmıyor gibi görünüyor. Sadece kalan iki emir Lion için çalışır
Antony

FileVault2 açıksa, kullanıcının ilk açılış ekranında kullanıcıyı gizlemeyeceğini unutmayın.
James McMahon

12
dscl . create /Users/test
dscl . create /Users/test UniqueID 420
dscl . create /Users/test PrimaryGroupID 420
dscl . create /Users/test UserShell /bin/bash
dscl . create /Users/test NFSHomeDirectory /tmp
dscl . create /Users/test RealName Test
dscl . create /Users/test Password test

Bu, sysprefs / Hesaplarda görünen bir kullanıcı yaratır.

dscl . create /Users/test Password "*"

Bu kullanıcıyı gizler. "*" Alıntı yaptığınızdan emin olun, yoksa işe yaramaz.

EDIT : Yanlışlıkla googletorp'un şifresini "*" olarak ayarlayarak bir kullanıcıyı gizleyememe durumunu yeniden yaratmayı başardım ve nasıl düzelteceğimi keşfettim. Bu sefer, dsimport kullanarak bir kullanıcı yaratmıştım, şunun gibi:

dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF

Ancak bu komutta, *, tek harfli bir karakter parolasını temsil etmek için alınır *ve bu nedenle dsimport, kullanıcı için bir AuthenticationAuthority özelliği oluşturur ve bu parola özelliğini, *( ********dscl'de olduğu gibi) tüm gölge gölgesine ayarlar. şifreler). Bundan sonra, dscl kullanarak şifreyi "*" olarak ayarlamaya çalışmak, şifreyi *devre dışı bırakmak yerine şifreyi değişmeze ayarlamaya devam eder . Çözüm, istenmeyen özellikleri silmek ve ardından şifreyi devre dışı bırakmaktır:

sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"

Bu kullanıcıyı gizler.


Alıntılar yerine, yıldızdan kaçmayı denedin mi? dscl . -create /Users/test Password \*
Eric3

Dscl, "Parola" dan sonra bir değişmez "*" gördüğünde, her şey yolunda gider.
LaC,

7

Uygulanabilir bir çözüm bulamadıysanız (veya bu soruyu Google’dan bu başkasının bulması durumunda), kullanıcının /usr/bin/false giriş yapmasını engellemek ve giriş ekranından ve sistem tercihlerinden gizlemek için kullanıcının kabuğunu ayarlayın . Bunu yapmak için aşağıdaki komut satırını kullanın:

sudo dscl . -change /Users/[username] UserShell /bin/bash /usr/bin/false

Ve değişikliği geri almak için:

sudo dscl . -change /Users/[username] UserShell /usr/bin/false /bin/bash

[username]Gizlemek istediğiniz kullanıcının adı nerede ( _postgressanırım senin durumunda). Neden dscleski değeri ilk önce istediğimi bilmiyorum , ama manpage dediği gibi ve oldukça iyi çalışıyor.


1
Kullanmak istediğim şey, bu kullanıcı için kabuğu devre dışı bıraktığı için bu çözüm çok zayıf. Veritabanını vb. Yeniden başlatmak
istersem

@ googletorp: sudo -s -u _postgresBir kabuk hesabını almak için yönetici hesabından hala yapabilirsiniz _postgres; Bu UserShellayarlanmış olsa bile işe yarayacak /usr/bin/false. Ayrıca, şifresini "şifresiz" olarak ayarlamıyor, yapmaya çalıştığın gibi hesabı da devre dışı bırakmıyor mu?
zneak
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.