Tạo người dùng không có mật khẩu


66

Tôi đang cố gắng tạo người dùng mà không có mật khẩu như thế này:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

Nó được tạo ra tốt đẹp. Nhưng khi tôi cố gắng đăng nhập dưới người dùng git, tôi nhận được mật khẩu đang nhập:

su git
Password:...

Khi tôi để trống, tôi gặp lỗi:

su: Authentication failed

Chuyện gì vậy?


1
Không có gì sai, xác thực thất bại như mong đợi. Bạn sẽ không nhận được thông báo lỗi "không có mật khẩu, bạn không thể đăng nhập".
scai

Nhưng tôi cần tạo thư mục .ssh dưới người dùng git, tôi phải làm thế nào?
Erik

1
Tạo nó dưới dạng root và đặt quyền chính xác hoặc thực thi su gitvới quyền root mà bạn không phải cung cấp mật khẩu.
scai

4
Bằng cách sử dụng chmodchown.
scai

1
Không có chủ đề, nhưng đó là "người dùng" chứ không phải "người dùng". wrwrdigest.com/online-editor/ từ
David Baucum

Câu trả lời:


31

Bạn đã tạo một người dùng có mật khẩu bị vô hiệu hóa mật mã, có nghĩa là không có mật khẩu nào cho phép bạn đăng nhập như đã sử dụng. Điều này khác với việc tạo người dùng mà bất kỳ ai cũng có thể đăng nhập mà không cần cung cấp mật khẩu, điều này đạt được bằng cách chỉ định mật khẩu trống và rất hiếm khi hữu ích.

Để thực thi các lệnh như những người dùng hệ thống khác mà người dùng không đăng nhập bình thường, bạn cần phải nhảy qua tài khoản root:

su -c 'su git -c "git init"'

hoặc là

sudo -u git git init

Nếu bạn muốn một số người dùng nhất định có thể chạy các lệnh như gitngười dùng mà không cho phép họ chạy các lệnh dưới quyền root, hãy thiết lập sudo (chạy visudodưới quyền root và thêm một dòng như %gitters ALL = (git) ALL).


@JulienRicard Er, vâng, và? Có nhiều cách người dùng có thể hiểu được mật khẩu mà không có mật khẩu, và tôi trả lời cho trường hợp sử dụng được đưa ra trong câu hỏi. Một câu hỏi về, ví dụ, tạo một người dùng khách sẽ là một câu hỏi khác.
Gilles 'SO- ngừng trở nên xấu xa'

41

Các --disabled-passwordtùy chọn sẽ không được thiết lập một mật khẩu, có nghĩa là không có mật khẩu là hợp pháp, nhưng đăng nhập vẫn còn có thể (ví dụ với các phím SSH RSA).

Để tạo người dùng không có mật khẩu, hãy sử dụng passwd -d $usernamesau khi người dùng được tạo để làm cho mật khẩu trống. Lưu ý không phải tất cả các hệ thống đều cho phép người dùng có mật khẩu trống để đăng nhập.


3
Điều này dường như không hoạt động trong phiên bản 16 ubfox
Daniel Tate


9

Nếu bạn muốn truy cập hệ thống theo người dùng git, bạn nên sử dụng sudo:

sudo -s -u git

hoặc là

sudo su - git

4

Tạo người dùng với mật khẩu trống

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

Dấu nhắc mật khẩu vẫn hiển thị không may.

Nhưng nếu bạn chỉ cần nhấn enter mà không cần nhập bất cứ thứ gì và nó sẽ đăng nhập với tư cách người dùng test-user-0.

Các -ecờ cho biết chpasswdmật khẩu đã được mã hóa và U6aMy0wojraholà hàm băm của chuỗi rỗng.

Đã thử nghiệm trên Ubuntu 18.04.

Autologin thiết bị đầu cuối với getty -a

Trên thiết bị đầu cuối ít nhất, bạn không cần tạo người dùng mà không cần mật khẩu để cho phép ai đó không gõ mật khẩu của họ mỗi lần.

Tôi đã có thể làm điều này trên BusyBox bằng cách sửa đổi inittab: Làm thế nào để đăng nhập tự động mà không cần nhập tên người dùng hoặc mật khẩu gốc trong Buildroot BusyBox init?

Vì vậy, tôi tin rằng sẽ không quá khó để điều chỉnh kỹ thuật đó bằng cách sửa đổi các tập lệnh hệ thống khởi động hệ thống của Ubuntu 18.04 để thiết lập một getty -a <user>thiết bị đầu cuối như được đề cập trong câu trả lời đó, mặc dù tôi đã không cố gắng tự làm điều đó.


2

Tôi nghĩ rằng đây là những gì bạn muốn:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

Bạn sẽ có thể

su $username

để chạy các lệnh như người dùng đó, trong / bin / bash hoặc bất kỳ shell nào bạn chỉ định. --gecos "Người dùng" chỉ cần đưa "Người dùng" vào trường nhận xét để bạn không được nhắc về thông tin đó. Bạn có thể đặt bất cứ điều gì bạn muốn vào lĩnh vực đó.

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.