Byłem uruchamiając useradd {user}
polecenie, aby dodać użytkowników do mojego systemu, choć mam zamiar to działa w zautomatyzowanym środowisku, a to może skończyć się ich uruchomić ponownie, mimo że użytkownik już istnieje.
Czy istnieje sposób, w jaki mogę to uruchomić, tylko jeśli użytkownik jeszcze nie istnieje? Użytkownik nie ma folderu domowego.
adduser
jest ogólnie preferowany w systemach Debian / Ubuntu.useradd
.Odpowiedzi:
id -u somename
zwraca niezerowy kod wyjścia, gdy użytkownik nie istnieje.Możesz to przetestować po prostu ... (
&>/dev/null
po prostu tłumi normalne wyjście / ostrzeżenie)źródło
Spróbuj tego:
a nawet to:
źródło
Chyba że masz tylko niewielką garść systemów, zadajesz złe pytanie. Odpowiedź nie polega na tym, aby w ogóle uruchamiać użytkownika, ale zamiast tego pozostaw tę pracę rozwiązaniu do zarządzania konfiguracją, takim jak marionetka lub szef kuchni. Umożliwi to scentralizowanie definicji użytkownika i zapobiegnie uruchamianiu pętli i używaniu ssh z użytkownikami root do konfigurowania systemów. Zawsze będziesz mieć systemy w znanym stanie konfiguracji.
Dokumentacja marionetki jest dostępna na stronie http://docs.puppetlabs.com
Jako przykład w marionetce:
źródło
useradd nie dodałby użytkownika ponownie, jeśli już istnieje, chce się upewnić, że numer UID i login UID są unikalne. Jeśli planujesz uruchomić partię, upewnij się, że używane płyny są unikalne; useradd narzekałby na problematyczne wpisy i musisz przechwycić błędy / stderr, aby zobaczyć, które konta użytkowników miały problemy z dostępem do systemów kont (/ etc / passwd, group, shadow).
źródło