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?
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:
Các usermod -p
cờ đượ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 passwd
yêu cầu mật khẩu từ 0 đến 10 ký tự.
Lý do nó không hoạt động là vì usermod
tùy chọn -p -p hy vọng mật khẩu đã được mã hóa.
Từ usermod
trang 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!
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
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}