Lỗi không thể tạo người dùng do lỗi biểu thức chính quy


18

Tôi đang chạy Ubuntu 12.10 máy tính để bàn 32 bit. Hiện tại tôi chỉ có một người dùng, gõ quản trị viên. Tôi muốn tạo một người dùng quản trị viên khác nhưng tôi vẫn gặp phải lỗi sau:

Không thể tạo người dùng

GDBus.Error: org.freedesktop.Accounts.Error.Fails: running '/ usr / sbin / adduser' không thành công: / usr / sbin / adduser đã trả về lỗi biến cấu hình NAME_REGEX [_SYSTEM]. Sử dụng tùy chọn `--force-badname 'để thư giãn kiểm tra này hoặc cấu hình lại NAME_REGEX.

Bất kỳ đề nghị được đánh giá cao.


1
Bạn có thể vui lòng chỉnh sửa và cho chúng tôi biết cụ thể hơn những gì bạn đã làm để nhận được lỗi này. Đó có phải là một mệnh lệnh?
Zilvador

Câu trả lời:


14

Bạn thường nhận được thông báo này nếu bạn đang cố gắng tạo người dùng có tên chứa các ký tự được coi là không thể chấp nhận được theo tệp NAME_REGEX của bạn. Bạn có thể thử lại thay đổi tên người dùng bằng GUI hoặc bạn có thể thư giãn kiểm tra bằng cách sử dụng dòng lệnh với lệnh sau.

sudo adduser --force-badname <username>

và sau đó nếu bạn muốn thêm người dùng vào nhóm sudo, hãy chạy lệnh sau.

sudo adduser <username> sudo

1
-1, tôi sẽ không khuyến khích làm điều đó. Hạn chế có lẽ là tại chỗ cho một lý do.
nyuszika7h

1
@ nyuszika7h Tôi tự hỏi làm thế nào điều này có thể ảnh hưởng đến hệ thống? Chỉ cần tìm một ví dụ ở đây kể từ khi tôi tạo người dùng cho tài khoản thư của mình.
sitilge

10

Tên người dùng bạn đang nhập chứa các ký tự xấu. Hãy thử nhập tên người dùng đơn giản chỉ chứa các chữ cái tiếng Anh viết thường - danieltốt, &&Daniel <*> Johnson##không tốt lắm.


Đây là câu trả lời chính xác. Sẽ rất hữu ích nếu thông báo lỗi hiển thị biểu thức chính quy thay vì tên biến ...
Gabe Hiemstra

7

Trong các hệ thống Debian, regex xác định tên người dùng có thể chấp nhận được tìm thấy trong /etc/adduser.conf.

Một regex điển hình (được tìm thấy trên hệ thống của tôi) là:

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

Tôi không muốn xoay xở quá xa chủ đề với phân tích cú pháp regex, nhưng biểu tượng dấu mũ ^ cho biết ký tự bắt đầu của tên người dùng phải nằm giữa chữ thường a và chữ thường z. Các ký tự còn lại có thể là chữ thường az, 0-9, gạch nối hoặc gạch dưới. Như đã đề cập trong các câu trả lời khác, bạn có thể ghi đè kiểm tra này nếu bạn muốn. Theo mặc định, regexes phân biệt chữ hoa chữ thường.


2

Tôi đã đối mặt với cùng một vấn đề - và tôi đã giải quyết nó - khi tôi viết

# adduser --home /ali ali

Tôi đã nhận được lỗi của

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.

Tôi đã giải quyết nó chỉ bằng cách loại bỏ các chữ cái viết hoa như hình dưới đây

# 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
Câu trả lời này là một bản sao của câu trả lời hiện có này: Askubfox.com/questions/232742/ trên
karel

0

Câu trả lời của CoalaWeb là chính xác, nhưng nếu bạn không muốn tạo một nhóm tùy chỉnh cho người dùng đó ... bạn chỉ cần sử dụng lệnh sau để tạo người dùng:

sudo useradd <username>

thí dụ:

sudo useradd josh

... sau đó nói đúng bởi CoalaWeb, làm theo lệnh:

sudo adduser <username> <groupname>

thí dụ:

sudo adduser josh sudo

... điều này sẽ cung cấp cho người dùng mới quyền 'josh' sudo (quyền siêu người dùng (còn gọi là quản trị viên))

... Tôi cũng sẽ thêm vào nhóm gọi là 'adm'.

hy vọng điều này sẽ giúp ai đó


tên nhóm là trước tên người dùng. các lệnh nên được sudo, adduser <groupname> <username>ví dụ:sudo adduser sudo josh
SherylHohman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.