Làm thế nào để thay đổi mật khẩu bằng usermod?


10

Tôi là siêu máy chủ và muốn thay đổi mật khẩu của người dùng hiện có. Làm thế nào tôi có thể làm điều đó ?

Tôi đã thử

usermod -p 'new-password' john

Nhưng nó không hoạt động?


câu trả lời tốt nhất là ở đây: Askubfox.com/a/80447/55435 , lưu ý để kiểm tra các bình luận cũng như
ryenus

Câu trả lời:


16

Các usermod -pcờ được mong đợi các dữ liệu được mật khẩu đã có trong một định dạng mã hóa.

Sử dụng openssl passwdđể tạo dữ liệu được mã hóa hoặc thực hiện như sau:

usermod -p `openssl passwd` (USERNAME)

openssl passwdyêu cầu mật khẩu từ 0 đến 10 ký tự.
Onnonymous

6

Lý do nó không hoạt động là vì usermodtùy chọn -p -p hy vọng mật khẩu đã được mã hóa.

Từ usermodtrang của người đàn ông:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

Để đặt mật khẩu theo cách này không được khuyến khích.

Thay vào đó Bạn nên sử dụng passwd <username>. Điều này nên (như usermod) được thực hiện dưới quyền root (nếu bạn không thay đổi mật khẩu người dùng hiện đang đăng nhập).

Để thay đổi mật khẩu cho người dùng foo.

sudo passwd foo

Điều này sẽ nhắc nhập mật khẩu mới.

Hãy xem trang hướng dẫn passwdđể biết thêm thông tin về cài đặt, ví dụ như hết hạn thời gian.

Chúc may mắn!


6

Bạn có thể sử dụng passwd:

sudo passwd USERNAME 

Bạn không cần sudonếu bạn là siêu người dùng


sudoyêu cầu mật khẩu root :)
Achu

@Achu: yêu cầu mật khẩu người dùng hiện tại. Nhưng anh ấy là siêu người dùng.
Rịa

Không gì superuserđại diện?
Achu

3

Cách để gán mật khẩu với usermod (đó là những gì OP thực sự yêu cầu) là sử dụng crypt()mật khẩu băm cho -pđối số.

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

Sau đó sử dụng nó trong usermod -pđối số dòng lệnh của bạn :

usermod -p ${HASH} john

2

Lệnh một dòng không tương tác để thay đổi mật khẩu của người dùng:

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -pyêu cầu mật khẩu được mã hóa để hoạt động. Xin lưu ý rằng new-passwordsẽ được hiển thị cho người dùng có thể liệt kê các quy trình.


2

Một cái gì đó nên được thêm vào đây là sau đây. Phương pháp này:

sudo usermod -p perl -e "print crypt("new-password","Q4")"john

có nghĩa là nhiều mật khẩu rất giống nhau sẽ TẤT CẢ hoạt động. Ví dụ: trên máy chủ Oracle Linux 7.4 và máy tính để bàn Ubuntu 17.10, hãy xem xét:

sudo usermod -p perl -e "print crypt("borkling","Q4")"orabfox

Bây giờ nếu một người làm:

su - orabfox

bạn sẽ thấy rằng BẤT K password mật khẩu nào bắt đầu bằng "borkling" sẽ hoạt động, vd

borkling88 borklingjars

mặc dù "borkline" sẽ không hoạt động bởi vì như đã nêu trước đây, bất kỳ mật khẩu nào có "borkling" vì tiền tố của nó cũng sẽ hoạt động khi mật khẩu được đặt theo cách này.

Một cách để làm điều này mà afaik không có tác dụng phụ không mong muốn này là như sau:

(tín dụng cho những thứ này được chuyển đến "Sandeep" tại đây:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )

Trên RedHaty Linuxes: (bỏ qua "-G wheel" nếu bạn không muốn quyền riêng tư được cấp)

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G wheel $ {USERNAME}

Trên Debiany Linuxes (bỏ qua -G sudo nếu bạn không muốn sudo private):

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}


1

Chỉ loại

passwd

Theo cách này, người dùng bình thường có thể thay đổi mật khẩu riêng mà không cần quyền root nếu bạn không 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.