„Nie można utworzyć użytkownika” z powodu błędu wyrażenia regularnego

18

Używam 32-bitowego systemu Ubuntu 12.10. Obecnie mam tylko użytkownika, wpisz administratora. Chciałbym utworzyć innego użytkownika administratora, ale wciąż pojawia się następujący błąd:

Nie udało się utworzyć użytkownika

GDBus.Error: org.freedesktop.Accounts.Error.Failed: uruchomienie '/ usr / sbin / adduser' nie powiodło się: / usr / sbin / adduser zwrócił błąd (1): adduser: Wprowadź nazwę użytkownika pasującą do wyrażenia regularnego skonfigurowanego za pomocą zmienna konfiguracyjna NAME_REGEX [_SYSTEM]. Użyj opcji `--force-badname ', aby złagodzić tę kontrolę lub ponownie skonfigurować NAME_REGEX.

Wszelkie sugestie są mile widziane.

Daniel
źródło
1
Czy możesz edytować i powiedzieć nam dokładniej, co zrobiłeś, aby uzyskać ten błąd? Czy to był rozkaz?
Zilvador,

Odpowiedzi:

14

Zwykle pojawia się ten komunikat, jeśli próbujesz utworzyć użytkownika o nazwie zawierającej znaki uważane za niedopuszczalne zgodnie z plikiem NAME_REGEX. Możesz spróbować ponownie zmienić nazwę użytkownika za pomocą GUI lub możesz rozluźnić kontrolę, używając wiersza polecenia z następującą komendą.

sudo adduser --force-badname <username>

a następnie, jeśli chcesz dodać użytkownika do grupy sudo, uruchom następujące polecenie.

sudo adduser <username> sudo
CoalaWeb
źródło
1
-1, nie zachęciłbym tego. Ograniczenie prawdopodobnie istnieje z jakiegoś powodu.
nyuszika7h
1
@ nyuszika7h Zastanawiam się, jak to może wpłynąć na system? Po prostu szukam tutaj przykładu, ponieważ tworzę użytkownika dla mojego konta pocztowego.
sitilge
10

Wpisana nazwa użytkownika zawiera złe znaki. Spróbuj wpisać prostą nazwę użytkownika zawierającą tylko małe litery angielskie - danieljest dobra, &&Daniel <*> Johnson##nie jest taka dobra.

Siergiej
źródło
To jest poprawna odpowiedź. Byłoby pomocne, gdyby komunikat o błędzie pokazywał rzeczywiste wyrażenie regularne zamiast nazwy zmiennej ...
Gabe Hiemstra
7

W systemach Debian wyrażenie regularne definiujące dopuszczalne nazwy użytkowników znajduje się w /etc/adduser.conf.

Typowy regex (znaleziony w moim systemie) to:

NAME_REGEX="^[a-z][-a-z0-9_]*\$"

Nie chcę odwracać tematu od parsowania wyrażeń regularnych, ale symbol daszka ^ wskazuje, że początkowy znak nazwy użytkownika musi znajdować się między małą a a małą z. Pozostałe znaki mogą być małymi literami az, 0-9, łącznikiem lub podkreśleniem. Jak wspomniano w innych odpowiedziach, możesz zmienić tę kontrolę, jeśli chcesz. Domyślnie w wyrażeniach regularnych rozróżniana jest wielkość liter.

mightypile
źródło
2

Kiedy pisałem, napotkałem ten sam problem - i go rozwiązałem

# adduser --home /ali ali

Mam błąd

dduser --home /Ali Ali
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

Rozwiązałem to, usuwając wielkie litery, jak pokazano poniżej

# adduser --home /ali ali
Adding user `ali' ...
Adding new group `ali' (1001) ...
Adding new user `ali' (1001) with group `ali' ...
Creating home directory `/ali' ...
Copying files from `/etc/skel' ...
passwd:     
passwd: password updated successfully
Ali mmd
źródło
1
Ta odpowiedź jest duplikatem tej istniejącej odpowiedzi: askubuntu.com/questions/232742/…
karel
0

Odpowiedź CoalaWeb jest poprawna, ale jeśli nie chcesz tworzyć niestandardowej grupy dla tego użytkownika ... możesz po prostu użyć następującego polecenia, aby utworzyć użytkownika:

sudo useradd <username>

przykład:

sudo useradd josh

... następnie słusznie powiedziane przez CoalaWeb, wykonaj polecenie:

sudo adduser <username> <groupname>

przykład:

sudo adduser josh sudo

... to da nowemu użytkownikowi „josh” uprawnienia sudo (uprawnienia superużytkownika (aka admin))

... dodałbym również do grupy o nazwie „adm”.

mam nadzieję, że to komuś pomoże

josh.thomson
źródło
nazwa grupy jest przed nazwą użytkownika. polecenia powinny być sudo, adduser <groupname> <username>np .:sudo adduser sudo josh
SherylHohman