Chạy adduser không tương tác


198

Tôi muốn sử dụng adduserlệnh để thêm người dùng (với mật khẩu bị vô hiệu hóa) thông qua tập lệnh shell.

Theo mặc định, addusernhắc bạn về các giá trị khác nhau (ví dụ: Họ và tên). Có cách nào để gửi các giá trị này thông qua dòng lệnh? Hay tôi sẽ cần phải useraddthay thế?

Câu trả lời:


262

Sử dụng --gecostùy chọn để bỏ qua phần chfntương tác.

adduser --disabled-password --gecos "" username

Đó là tất cả trong trang người đàn ông. Không phải là công thức rõ ràng nhất tho.

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.

Trường GECOS là một danh sách được phân tách bằng dấu phẩy như sau : Full name,Room number,Work phone,Home phone, mặc dù trang đó có đề cập đến finger information Chi tiết - Wikipedia

Hy vọng điều này sẽ giúp bạn.


41

useradd cũng có thể thêm người dùng và dường như không có bất kỳ hình thức nhắc nhở nào được tích hợp.

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m, --create-home: Tạo thư mục nhà người dùng
  • -p, --password: Chỉ định mật khẩu người dùng; bỏ qua để nó bị vô hiệu hóa
  • -s, --shell: Shell mặc định cho người dùng đăng nhập

    Trống sẽ sử dụng shell đăng nhập mặc định được chỉ định bởi SHELLbiến trong/etc/default/useradd

  • Thay thế <user>bằng tên đăng nhập
  • Thay thế <encryptedPassword>bằng mật khẩu được mã hóa

Tạo mật khẩu băm:

rất nhiều triển khai crypt3 có thể tạo mật khẩu băm. Toàn bộ điều là mật khẩu băm của bạn.

Dựa trên Sha-512

Định dạng đầu ra kết quả: cơ chế băm ( $6đối với sha-512), muối ngẫu nhiên (tám byte sau ký hiệu đô la thứ hai $ASDF1234), phần còn lại là tải trọng.

  • mkpasswd mkpasswd -m sha-512

    ( mkpasswdđược cung cấp bởi whoisgói)

Dựa trên:

Định dạng đầu ra kết quả: 2 byte đầu tiên là muối của bạn, phần còn lại là tải trọng. Toàn bộ điều là mật khẩu băm của bạn.

  • mkpasswd: mkpasswd(được cung cấp theo whoisgói)
  • openssl: openssl passwd -crypt
  • perl: perl -e "print crypt('password');"
  • trăn: python3 -c 'import crypt; print(crypt.crypt("password"))'

1
Các tùy chọn bạn đề cập không tồn tại addusertrên phiên bản Ubuntu (gần đây) của tôi.
ᴠɪɴᴄᴇɴᴛ

1
@ adduserlà khác biệt useradd, khó hiểu tôi biết.
ThorSummoner

1
Rất tiếc, thực sự bạn đã bỏ lỡ việc bạn sử dụng tên gần như tên của nó không phải là một BDFL bảo vệ không gian tên dòng lệnh? ; p
ᴠɪɴᴄᴇɴᴛ

1
@ mum007 Đây chỉ là lời khuyên chung, hãy thử thêm -vhoặc -vvhoặc -vvvvào các lệnh ssh của bạn để xem có gì sai và tìm kiếm thông báo lỗi của bạn ở đây trên SO hoặc Google.
ThorSummoner

1
@KovacsAkos hãy thử điều này: sudo sed -i"" -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_configsudo service ssh restart
JSBach
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.