“ ไม่สามารถสร้างผู้ใช้ได้” เนื่องจากข้อผิดพลาดในการแสดงออกปกติ


18

ฉันใช้ Ubuntu 12.10 desktop 32 บิต ขณะนี้ฉันมีเพียงผู้ใช้งานพิมพ์ผู้ดูแลระบบ ฉันต้องการสร้างผู้ใช้ผู้ดูแลระบบคนอื่น แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:

ไม่สามารถสร้างผู้ใช้

GDBus.Error: org.freedesktop.Accounts.Error.Failed: การเรียกใช้ '/ usr / sbin / adduser' ล้มเหลว: / usr / sbin / adduser ส่งคืนข้อผิดพลาด (1): adduser: โปรดป้อนชื่อผู้ใช้ที่ตรงกับการแสดงออกปกติที่กำหนดค่าผ่าน ตัวแปรการกำหนดค่า NAME_REGEX [_SYSTEM] ใช้ตัวเลือก `--force-badname 'เพื่อผ่อนคลายการตรวจสอบนี้หรือกำหนดค่า NAME_REGEX ใหม่

ข้อเสนอแนะใด ๆ ที่มีความนิยม


1
คุณช่วยแก้ไขและเล่าให้เราฟังได้มากขึ้นว่าคุณทำอะไรเพื่อรับข้อผิดพลาดนี้ มันเป็นคำสั่งหรือไม่?
Zilvador

คำตอบ:


14

ตามปกติคุณจะได้รับข้อความนี้หากคุณพยายามสร้างผู้ใช้ที่มีชื่อที่มีตัวอักษรที่ถือว่าไม่เหมาะสมตามไฟล์ NAME_REGEX ของคุณ คุณสามารถลองเปลี่ยนชื่อผู้ใช้อีกครั้งด้วย GUI หรือคุณสามารถผ่อนคลายการตรวจสอบโดยใช้บรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

sudo adduser --force-badname <username>

และถ้าคุณต้องการเพิ่มผู้ใช้ในกลุ่ม sudo ให้เรียกใช้คำสั่งต่อไปนี้

sudo adduser <username> sudo

1
-1 ฉันจะไม่สนับสนุนให้ทำเช่นนั้น อาจมีข้อ จำกัด เกิดขึ้นด้วยเหตุผล
nyuszika7h

1
@ nyuszika7h ฉันสงสัยว่ามันจะส่งผลกระทบต่อระบบได้อย่างไร? แค่มองหาตัวอย่างที่นี่ตั้งแต่ฉันสร้างผู้ใช้สำหรับบัญชีอีเมลของฉัน
sitilge

10

ชื่อผู้ใช้ที่คุณป้อนมีอักขระที่ไม่ดี ลองป้อนชื่อผู้ใช้ที่เรียบง่ายที่มีตัวอักษรภาษาอังกฤษเท่านั้นกรณีที่ต่ำกว่า - danielเป็นเรื่องที่ดี&&Daniel <*> Johnson##ไม่ดี


นี่คือคำตอบที่ถูกต้อง มันจะมีประโยชน์หากข้อความแสดงข้อผิดพลาดแสดงให้เห็นว่า regex จริงแทนที่จะเป็นชื่อตัวแปร ...
Gabe Hiemstra

7

ในระบบ Debian นั้น regex จะกำหนดชื่อผู้ใช้ที่ยอมรับได้ใน /etc/adduser.conf

regex ทั่วไป (พบในระบบของฉัน) คือ:

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

ฉันไม่ต้องการเบี่ยงเบนความสนใจจากหัวข้อการแยกวิเคราะห์ regex มากเกินไป แต่เครื่องหมายคาเร็ต ^ บ่งชี้ว่าอักขระเริ่มต้นของชื่อผู้ใช้จะต้องอยู่ระหว่างตัวพิมพ์เล็ก a และตัวพิมพ์เล็ก z อักขระที่เหลืออาจเป็นตัวพิมพ์เล็ก az, 0-9, ยัติภังค์หรือขีดล่าง ตามที่กล่าวไว้ในคำตอบอื่น ๆ คุณสามารถแทนที่การตรวจสอบนี้หากคุณต้องการ โดยค่าเริ่มต้น regexes เป็นกรณี ๆ ไป


2

ฉันประสบปัญหาเดียวกัน - และฉันแก้ไขมัน - เมื่อฉันเขียน

# adduser --home /ali ali

ฉันได้รับข้อผิดพลาดของ

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.

ฉันแก้ไขมันโดยการลบตัวอักษรตัวพิมพ์ใหญ่ตามที่แสดงด้านล่าง

# 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

1
คำตอบนี้ซ้ำกับคำตอบเดิม: askubuntu.com/questions/232742/…
karel

0

คำตอบของ CoalaWeb นั้นถูกต้อง แต่ถ้าคุณไม่ต้องการสร้างกลุ่มที่กำหนดเองสำหรับผู้ใช้นั้น ... คุณสามารถใช้คำสั่งต่อไปนี้เพื่อสร้างผู้ใช้:

sudo useradd <username>

ตัวอย่าง:

sudo useradd josh

... จากนั้นพูดอย่างถูกต้องโดย CoalaWeb ทำตามคำสั่ง:

sudo adduser <username> <groupname>

ตัวอย่าง:

sudo adduser josh sudo

... สิ่งนี้จะให้สิทธิ์ผู้ใช้ใหม่ 'สิทธิ์การใช้งาน sudo (สิทธิ์ผู้ใช้ขั้นสูง (ผู้ดูแลระบบ aka))

... ฉันจะเพิ่มกลุ่มที่เรียกว่า 'adm' ด้วย

หวังว่าสิ่งนี้จะช่วยให้ใครบางคน


ชื่อกลุ่มอยู่ก่อนชื่อผู้ใช้ คำสั่งควรเป็น sudo adduser <groupname> <username>เช่น:sudo adduser sudo josh
SherylHohman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.