2009-12-02 00:47:25 +0000 2009-12-02 00:47:25 +0000
138
138

Jak mogę stworzyć użytkownika nie zalogowanego?

Chciałbym stworzyć użytkownika i grupę o nazwie subversion w systemie RHEL 5. Spojrzałem na stronę man dla useradd i zgaduję, że komenda byłaby po prostu…

useradd subversion

Jednak nie jestem pewien jak uniknąć tworzenia home dir. Nie chcę też, aby był to użytkownik, który może się zalogować do systemu.

Głównym celem jest po prostu zapewnienie właściciela repozytorium SVN.

Odpowiedzi (8)

229
229
229
2012-12-06 20:10:20 +0000

Możesz użyć następującej komendy:

useradd -r subversion

Aby uzyskać więcej informacji, sprawdź strony podręcznika z tą komendą:

man useradd

W tej dokumentacji znajdziesz następującą flagę, która może być użyta do twojego celu.

-r, --system create a system account

Flaga -r utworzy użytkownika systemowego - takiego, który nie ma hasła, nie może się zalogować.

81
81
81
2009-12-02 00:58:07 +0000

Możesz użyć przełącznika -M (upewnij się, że jest to kapitał), aby upewnić się, że nie zostanie utworzony żaden katalog domowy:

useradd -M subversion

następnie zablokować konto, aby uniemożliwić logowanie:

usermod -L subversion
22
22
22
2015-03-01 20:04:05 +0000

Innym rozwiązaniem jest utworzenie użytkownika systemowego za pomocą adduser 

adduser --system --no-create-home --group yourusername

Możesz usunąć --group jeśli nie potrzebujesz grupy użytkowników, a także --no-create-home jeśli potrzebujesz domu dla tego użytkownika.

Jak wspomniał py4on w komentarzach, w niektórych systemach może być konieczne użycie opcji --disabled-login aby, cóż, wyłączyć logowanie dla tego użytkownika. Wydaje się jednak, że jest to zachowanie domyślne w Debianie.

Strzeż się, że numeryczny ID użytkownika będzie pochodził z konta systemowego. Możesz jednak naprawić uid, używając opcji --uid.

Na koniec, zauważ, że na niektórych systemach (np. Fedora) adduser jest symulatorem do useradd, w tym przypadku ta odpowiedź jest nieważna.

17
17
17
2016-05-17 06:15:03 +0000

Najczystszą odpowiedzią na oryginalne pytanie jest uruchomienie komendy:

adduser subversion --shell=/bin/false

A jeśli nie chcesz, aby katalog domowy albo:

adduser subversion --shell=/bin/false --no-create-home

albo, jeśli chcesz jeszcze bardziej zablokowanego użytkownika systemu (Normalnie nie utworzy to katalogu domowego - zgłoszono, że nadal będzie tworzyć katalog domowy w mennicy linuksa, zgodnie z poniższym komentarzem)

adduser subversion --system --group

Wszystkie te komendy stworzą grupę o tej samej nazwie co użytkownik

13
13
13
2017-03-07 14:04:28 +0000

Najbezpieczniejszą formą jest użycie adduser w taki sposób:

$ adduser -r -s /bin/nologin subversion

Uwaga: Upewnij się, że włączyłeś -s /sbin/nologin, aby wyłączyć dowolną powłokę logowania z udostępnienia konta.

Potwierdzenie konfiguracji

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

Jednak nie ma katalogu:

$ ll /home | grep subversion
$

Potwierdź, że konto jest użyteczne w inny sposób:

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar 7 08:58:57 EST 2017

Usuń

Jeśli musisz usunąć to konto:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

I potwierdź:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$
1
1
1
2016-09-06 15:06:22 +0000

Na maszynie z CentOS 7 możesz użyć następujących komend:

  • Jeśli użytkownik nie istnieje:

  • jeśli chcesz zmodyfikować istniejącego użytkownika:

0
0
0
2019-09-02 00:38:41 +0000

W Debianie możesz stworzyć użytkownika systemowego (bez katalogu domowego) oraz powłokę logowania:

useradd --system --shell=/usr/sbin/nologin <username>

Jeśli Twój program nologin jest w /sbin/nologin, zmień go odpowiednio.

0
0
0
2019-06-08 18:45:03 +0000

Zacznij od wygenerowania zaszyfrowanego hasła dla użytkownika o maksymalnej długości 8 znaków wykonując:

openssl passwd -crypt new_password_less_than_eight_chars_long

Następnie wykonaj:

useradd -m -g groupname -G otherGroupsSeperatedByComma -p encryptedPassword username