[Linux] Hướng dẫn sử dụng lệnh ‘chpasswd’ đổi mật khẩu user khi chạy batch-mode Linux

Việc tạo user và quản lý thông tin mật khẩu user là một trong những nhiệm vụ cơ bản của Quản Trị Viên hệ thống Linux. Trong đó, một chính sách tốt giúp bảo mật hệ thống thông tin user là thường xuyên thay đổi mật khẩu của user một cách định kì. Nhưng mà thay đổi mật khẩu cho nhiều user cùng lúc bằng lệnh cơ bản ‘passwd‘ thì khá là mệt mỏi. Tất nhiên thì cũng có trick để khỏi phải nhập prompt mật khẩu mới nhưng mà vẫn lằng nhằng.

Thế thì ngay bây giờ và tại bài viết này, chúng ta sẽ tìm hiểu cách thức sử dụng chương trình lệnh ‘chpasswd‘ trên Linux. Chương trình lệnh này sẽ giúp ta thuận tiện thay đổi mật khẩu user ngay cả khi ta dùng trong shell script. Có thể xem thì chúng ta sử dụng lệnh này nhiều nhất khi lập trình shell script tự động thay đổi mật khẩu user dịnh kỳ.

 
Giới thiệu về chương trình lệnh ‘chpasswd’

– Chương trình lệnh ‘chpasswd‘ được sử dụng để cập nhật mật khẩu cho user hệ thống Linux khi hoạt động trong chế độ ‘batch mode‘ hay còn gọi là tiến trình tự động hoá như shell script.
– Chỉ có duy nhất user root hoặc user có cùng quyền hạn mới được phép sử dụng lệnh này.
– ‘chpasswd‘ hoạt động cực kì đơn giản bằng cách đọc danh sách user và mật khẩu tương ứng từ 1 file text hoặc input trực tiếp prompt. Rồi dùng các thông tin mật khẩu tương ứng đó để thay đổi mật khẩu user Linux.
– Mặc định mật khẩu có thể cung cấp dạng clear-text và ‘chpasswd‘ sẽ tự động mã hoá mật khẩu được cung cấp. Giờ chúng ta đến với các ví dụ sử dụng.

 
1. Sử dụng chiều INPUT – STDIN

– Sử dụng cách này thì khi gõ lệnh ‘chpasswd‘ nó sẽ hiện prompt ra để mình nhập chuỗi dòng kí tự “user:password” vào rồi mình phải kết thúc prompt đó.

# chpasswd
cuong:RSFa4Ic1vGaJqiem
quach:HQDHY65UisksbVpw
dot:u9gpKfSB8CfLTG
com:TpMUayHjHjBiSiFw

(ctrl+D)

 
– Sau khi bạn đã nhập hết thông tin tên user và mật khẩu sử dụng cho user đó theo format quy định, thì bạn cần ấn nút ‘Ctrl+D‘ để xác nhận với ‘chpasswd‘ rằng tới đây là kết thúc của nội dung input rồi. Lúc này ‘chpasswd’ sẽ tự động cập nhật mật khẩu cho bạn.

– Thường ít ai xài kiểu này, vì nó đâu phải mục tiêu chính để sử dụng nhưng vẫn phải biết cách sử dụng cơ bản nhé.

 
2. Sử dụng thông tin từ ‘pipe’

– Cách này khá tiện lợi và cũng dễ sử dụng trong shell script cho các hoạt động tự động hoá tác vụ quản trị. Khỏi nói nhiều luôn vào ví dụ là hiểu liền.

# echo "cuong:RSFa4Ic1vGaJqiem" | chpasswd

 
– Cứ mỗi 1 dòng như vậy ‘chpasswd‘ sẽ đọc thông tin username và mật khẩu cần đổi từ input trước đó của lệnh ‘echo’. Khá hay và khá tiện phải không nào, mình cũng khá thích xài kiểu này.

 
3. Đọc nội dung thông tin từ file

– Bạn có thể tạo 1 file text chứa thông tin tên user và mật khẩu sử dụng cho user đó, làm input đầu vào cho lệnh ‘chpasswd‘. Thông tin user và mật khẩu phải để theo chuẩn format chung như sau.

<username>:<password>

 
– Thông thường cách này được sử dụng nhiều nhất nếu bạn có nhu cầu đổi 1 loạt thông tin mật khẩu user trong hệ thống.

– Giờ ta vào đề với các ví dụ dễ hiểu nào, giả sử giờ mình đã chuẩn bị trước file text với thông tin 4 user và mật khẩu cần đổi ở dạng plain text như sau.

# cat /root/user-passwd
cuong:RSFa4Ic1vGaJqiem
quach:HQDHY65UisksbVpw
dot:u9gpKfSB8CfLTG
com:TpMUayHjHjBiSiFw

 
– Giờ ta thực hiện đổi mật khẩu mới là thông tin trường thứ 2 sau tên user như sau :

# chpasswd < /root/user-passwd

 
-> Quá đơn giản phải không nào.

 
4. Một số option của chương trình lệnh ‘chpasswd’

4.1 Sử dụng mật khẩu đã được mã hoá

– Bạn có thể mã hoá chuỗi mật khẩu của bạn rồi bạn sử dụng chúng làm input để chương trình ‘chpasswd‘ sử dụng làm mật khẩu user. Nhưng bạn phải khai báo option cho ‘chpasswd’ biết thông tin mật khẩu đó đã được mã hoá. Không thôi ‘chpasswd‘ lại đi mã hoá lần nữa.
– Option đó là ‘-e‘ hoặc ‘–encrypted‘.

# chpasswd -e < /root/user-passwd

hoặc

# echo "cuong:$1$AjrT$Hl9RMbPqayNbcRyXUgiBB0" | chpasswd -e

 
4.2 Sử dụng phương thức mã hoá hash MD5

– Bạn có thể chỉ định phương thức mã hoá mật khẩu mà bạn cung cấp cho ‘chpasswd‘ là MD5. Với option ‘-m‘ hoặc ‘–md5‘.

# chpasswd --md5 < /root/user-passwd

hoặc

# echo "cuong:RSFa4Ic1vGaJqiem" | chpasswd --md5

 
4.3 Sử dụng phương thức mã hoá khác

– Nếu bạn muốn sử dụng thuật toán mã hoá khác để mã hoá mật khẩu thì bạn có thể dùng option ‘-c‘ hoặc ‘–crypt-method‘. Ở ví dụ này, ta sẽ sử dụng thuật toán SHA512.

# chpasswd -c SHA512 < /root/user-passwd

hoặc

# echo "cuong:RSFa4Ic1vGaJqiem" | chpasswd -c SHA512

 
4.4 Thông tin trợ giúp từ lệnh

– Bạn có thể xem thông tin trợ giúp từ manual của lệnh hoặc option ‘–help‘ / ‘-h‘ của lệnh để biết thêm chi tiết.

Hy vọng các bạn đã nắm được cách thức sử dụng chương trình lệnh này. Nếu có bất kì thắc mắc gì hay tìm thấy sai sót từ bài viết của mình. Đừng ngần ngại comment dưới bài viết để mình cùng trao đổi hoặc cải thiện bài viết nhé.

Các bạn cũng có thể xem thêm các lệnh khác tại mục : Linux > Linux Knowledge > Shell Command nhé.
 

Cám ơn các bạn.

Previous article[Ebook] CCNA R&S ICND1 100-105 & ICND2 200-105 Official Cert Guide (2016) – Download PDF
Next article[PKI] Hướng dẫn tạo file CSR và private key bằng command line trên Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !