[Linux] Hướng dẫn khoá và mở khoá đăng nhập mật khẩu của tài khoản user trên Linux

Hướng dẫn khoá và mở khoá đăng nhập mật khẩu
của tài khoản user trên Linux


Làm thế nào tôi có thể khoá 1 tài khoản user đăng nhập mật khẩu trong hệ thống Linux ?


Mình sẽ hướng dẫn cách thức đơn giản đối với câu hỏi ở trên để thực thi nội dung tương ứng.
Lưu ý :
– User bị khoá mật khẩu vậy ? nhưng có đăng nhập được bằng SSH Key mà user đó đã khởi tạo trước đó chưa ?
– Hoàn toàn được các bạn nhé. Do các option hỗ trợ lệnh chỉ dùng để “khoá mật khẩu” tài khoản user chứ không phải “vô hiệu hoá” tài khoản user.

1. Khoá đăng nhập mật khẩu 1 tài khoản user account trên Linux

– Để có thể khoá tài khoản user account trên Linux, đầu tiên bạn cần xác định user đó tồn tại với UID cụ thể.
– Sau đó chúng ta có 2 cách sử dụng chương trình lệnh “passwd” và “usermod“. Hai chương trình này đều làm cùng 1 nhiệm vụ đó là khoá mật khẩu tài khoản user trên hệ thống Linux nhưng cách thức hơi khác nhau. Giả sử user mình sử dụng trong ví dụ có tên là “cuongquach“.

# usermod -L cuongquach

hoặc

# passwd -l cuongquach
Locking password for user cuongquach.
passwd: Success


2. Mở khoá đăng nhập mật khẩu 1 tài khoản user account trên Linux

– Để mở khoá tài khoản user account đã bị khoá ta tiếp tục dùng 2 chương trình lệnh “passwd” và “usermod” với option hỗ trợ khác.

# usermod -U cuongquach

hoặc

# passwd -u cuongquach
Unlocking password for user cuongquach.
passwd: Success


3. Làm sao kiểm tra trạng thái Khoá và không khoá mật khảu của user account trên Linux

3.1 Nếu bạn sử dụng chương trình lệnh “passwd” để khoá
– Đây là thông tin mật khẩu tài khoản “cuongquach” ở trạng thái chưa bị khoá trong file /etc/shadow .

# cat /etc/shadow
cuongquach:$6$pb9oK35b$2LtVpDJk6YZSbJGOsMUHiJqaVNM70AP3zCMNctlXj1xlksQL56L9wsDc2P/3mlYYLdm.8lNkMU9N./9gtsBND0:16887:0:99999:7:::

– Nếu user account “cuongquach” đã bị khoá bằng passwd thì sẽ xuất hiện 2 kí tự “!!” phía trước thông tin mật khẩu đã được mã hoá thì tất có nghĩa user này đã bị khoá mật khẩu truy cập thành công.

# cat /etc/shadow
cuongquach:!!$6$pb9oK35b$2LtVpDJk6YZSbJGOsMUHiJqaVNM70AP3zCMNctlXj1xlksQL56L9wsDc2P/3mlYYLdm.8lNkMU9N./9gtsBND0:16887:0:99999:7:::


3.2 Nếu bạn sử dụng chương trình lệnh “usermod” để khoá

– Nếu user account “cuongquach” đã bị usermod khoá thì sẽ xuất hiện 1 kí tự “!” phía trước thông tin mật khẩu đã được mã hoá thì tất có nghĩa user này đã bị khoá mật khẩu truy cập thành công.

# cat /etc/shadow
cuongquach:!$6$pb9oK35b$2LtVpDJk6YZSbJGOsMUHiJqaVNM70AP3zCMNctlXj1xlksQL56L9wsDc2P/3mlYYLdm.8lNkMU9N./9gtsBND0:16887:0:99999:7:::

– Như vậy là có sự khác nhau giữa cách khoá của “usermod” và “passwd” nhé, các bạn xem phần 4 trong bài này nhé.


3.3 Sử dụng chương trình “passwd” để kiểm tra trạng thái

– Đối với cách trên bằng cách kiểm tra file /etc/shadow để nhận biết trạng thái khoá tài khoản của user trên Linux hơi mất tí thời gian.
– Thay vì đó chương trình lệnh “passwd” hoàn toàn có thể nhận diện trạng thái khoá của tài khoản trên Linux, chỉ cần tìm thấy dấu “!” hoặc “!!” đều sẽ bị nhận diện là đã khoá nhưng chỉ cung cấp cùng 1 câu cảnh báo “Password locked” thì không chính xác hoàn toàn kiểu nào khoá : là do usermod khoá, passwd khoá hay user chưa đặt mật khẩu.

– Trạng thái user “cuongquach” lúc bị khoá.

# passwd -S cuongquach
cuongquach LK 2016-03-27 0 99999 7 -1 (Password locked.)

– Trạng thái user “cuongquach” lúc bị không bị khoá.

# passwd -S cuongquach
cuongquach PS 2016-03-27 0 99999 7 -1 (Password set, SHA512 crypt.)


3.4 Trường hợp user bị khoá do chưa đặt mật khẩu

– Đôi khi quản trị viên khởi tạo 1 user nhưng lại quên chưa đặt mật khẩu cho user đó, điều đó cũng đồng nghĩa với việc user này tạm thời bị khoá do chưa có thông tin mật khẩu sử dụng đăng nhập, lúc này trong file /etc/shadow thông tin về user đó sẽ có dạng như sau với 2 dấu “!!” và không có thông tin mật khẩu đã được mã hoá.

cuongquach:!!:16887:0:99999:7:::


4. Manual diễn giải

– Mình diễn giải phần manual liên quan 2 option của 2 lệnh “passwd” và “usermod“.

# man usermod
-L, --lock
 khoá mật khẩu của 1 tài khoản user trên hệ thống. Chương trình sẽ chèn thêm 1 kí tự "!" phía trước đoạn mật khẩu đã được mã hoá trong file /etc/shadow., để hệ thống nhận diện mật khẩu của user này hiện đã bị khoá không được sử dụng.

-U, --unlock
 mở khoá mật khẩu của 1 tài khoản user trên hệ thống. Chương trình sẽ xoá bỏ kí tự "!" nằm trước đoạn mật khẩu đã được mã hoá của user trong file /etc/shadow.
# man passwd
-l Lựa chọn này chỉ có thể thực thi bởi quyền root. Khoá mật khẩu của 1 tài khoản bằng cách mã hoá chuỗi mật khẩu thành 1 chuỗi kí tự khác không hợp lệ khi user tiến hành đăng nhập bằng mật khẩu. Để mã hoá thành chuỗi khác thì chương trình sẽ đặt thêm 2 kí tự "!!" trước thông tin mật khẩu.

-u Mở khoá mật khẩu của 1 tài khoản, bỏ 2 kí tự "!!" đi.


Như vậy đã xong phần hướng dẫn này, chúc các bạn thành công !

Previous article[PKI] Tìm hiểu về Server Name Indication (SNI) hỗ trợ nhiều site HTTPS trên cùng 1 shared IP
Next article[Nginx] Cấu hình Systemd Service dịch vụ Nginx compile trên CentOS/RHEL 7
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 !