Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh pwconv
của Linux và các ứng dụng thực tế của nó trong việc quản lý người dùng và quyền. Chúng ta sẽ bắt đầu bằng cách tìm hiểu mục đích của lệnh pwconv
, được sử dụng để chuyển đổi tệp mật khẩu truyền thống /etc/passwd
sang tệp mật khẩu shadow an toàn hơn /etc/shadow
. Sau đó, chúng ta sẽ học cách tạo và quản lý mật khẩu người dùng bằng lệnh pwconv
, đảm bảo rằng mật khẩu người dùng được lưu trữ an toàn. Cuối cùng, chúng ta sẽ thảo luận về cách khắc phục mọi sự cố có thể phát sinh trong quá trình chuyển đổi mật khẩu.
Tìm hiểu Mục đích của Lệnh pwconv
Trong bước này, chúng ta sẽ khám phá mục đích của lệnh pwconv
trong Linux. Lệnh pwconv
được sử dụng để chuyển đổi tệp mật khẩu truyền thống /etc/passwd
sang tệp mật khẩu shadow /etc/shadow
.
Tệp mật khẩu truyền thống /etc/passwd
lưu trữ thông tin tài khoản người dùng, bao gồm tên người dùng, ID người dùng, ID nhóm, thư mục home và shell. Tuy nhiên, tệp này có thể đọc được bởi tất cả người dùng, điều này gây ra rủi ro bảo mật vì nó hiển thị mật khẩu người dùng dưới dạng văn bản thuần túy.
Để giải quyết mối lo ngại về bảo mật này, tệp mật khẩu shadow /etc/shadow
đã được giới thiệu. Tệp này lưu trữ mật khẩu người dùng đã mã hóa và chỉ có thể đọc được bởi người dùng root, cung cấp khả năng bảo vệ mật khẩu tốt hơn.
Lệnh pwconv
được sử dụng để di chuyển thông tin mật khẩu từ tệp /etc/passwd
sang tệp /etc/shadow
, đảm bảo rằng mật khẩu người dùng được lưu trữ an toàn.
Hãy xem cách sử dụng lệnh pwconv
:
sudo pwconv
Ví dụ đầu ra:
Converting user database...
Lệnh pwconv
sẽ tự động tạo tệp /etc/shadow
và di chuyển thông tin mật khẩu từ tệp /etc/passwd
.
Sau khi chạy lệnh pwconv
, bạn có thể xác minh các thay đổi bằng cách kiểm tra nội dung của các tệp /etc/passwd
và /etc/shadow
:
sudo cat /etc/passwd | head -n 3
sudo cat /etc/shadow | head -n 3
Ví dụ đầu ra:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
root:$6$xxxxxxxxxx:18692:0:99999:7:::
daemon:*:18692:0:99999:7:::
bin:*:18692:0:99999:7:::
Như bạn có thể thấy, trường mật khẩu trong tệp /etc/passwd
đã được thay thế bằng 'x' và thông tin mật khẩu thực tế hiện được lưu trữ trong tệp /etc/shadow
, chỉ người dùng root mới có thể truy cập được.
Tạo và Quản lý Mật khẩu Người dùng Bằng pwconv
Trong bước này, chúng ta sẽ học cách tạo và quản lý mật khẩu người dùng bằng lệnh pwconv
.
Đầu tiên, hãy tạo một tài khoản người dùng mới:
sudo useradd -m newuser
Bây giờ, chúng ta cần đặt mật khẩu cho người dùng mới. Chúng ta có thể sử dụng lệnh passwd
cho việc này:
sudo passwd newuser
Bạn sẽ được nhắc nhập và xác nhận mật khẩu mới cho tài khoản newuser
.
Ví dụ đầu ra:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Sau khi đặt mật khẩu, chúng ta có thể sử dụng lệnh pwconv
để di chuyển thông tin mật khẩu sang tệp /etc/shadow
:
sudo pwconv
Ví dụ đầu ra:
Converting user database...
Để xác minh các thay đổi, hãy kiểm tra các tệp /etc/passwd
và /etc/shadow
:
sudo cat /etc/passwd | grep newuser
sudo cat /etc/shadow | grep newuser
Ví dụ đầu ra:
newuser:x:1001:1001::/home/newuser:/bin/bash
newuser:$6$xxxxxxxxxx:18692:0:99999:7:::
Như bạn có thể thấy, trường mật khẩu trong tệp /etc/passwd
đã được thay thế bằng 'x' và thông tin mật khẩu thực tế hiện được lưu trữ trong tệp /etc/shadow
.
Bạn cũng có thể sử dụng lệnh pwconv
để cập nhật thông tin mật khẩu cho những người dùng hiện có. Nếu mật khẩu của người dùng được lưu trữ trong tệp /etc/passwd
, việc chạy pwconv
sẽ di chuyển mật khẩu sang tệp /etc/shadow
.
Khắc phục Sự cố Chuyển đổi Mật khẩu với pwconv
Trong bước này, chúng ta sẽ học cách khắc phục mọi sự cố có thể phát sinh khi sử dụng lệnh pwconv
để chuyển đổi mật khẩu người dùng.
Một vấn đề phổ biến có thể xảy ra là khi tệp /etc/shadow
đã tồn tại và chứa thông tin mật khẩu. Trong trường hợp này, việc chạy lệnh pwconv
có thể không cập nhật thông tin mật khẩu như mong đợi.
Hãy mô phỏng tình huống này:
## Create a new user account
sudo useradd -m newuser2
## Set a password for the new user
sudo passwd newuser2
Bây giờ, hãy kiểm tra tệp /etc/shadow
:
sudo cat /etc/shadow | grep newuser2
Ví dụ đầu ra:
newuser2:$6$xxxxxxxxxx:18692:0:99999:7:::
Như bạn có thể thấy, thông tin mật khẩu cho tài khoản newuser2
đã có trong tệp /etc/shadow
.
Nếu bây giờ chúng ta chạy lệnh pwconv
, nó sẽ không cập nhật thông tin mật khẩu:
sudo pwconv
Ví dụ đầu ra:
Converting user database...
Để khắc phục sự cố này, chúng ta có thể sử dụng lệnh pwunconv
để tạm thời hoàn nguyên thông tin mật khẩu trở lại tệp /etc/passwd
, sau đó chạy lại pwconv
để di chuyển thông tin mật khẩu một cách chính xác.
## Revert the password information to /etc/passwd
sudo pwunconv
## Convert the password information back to /etc/shadow
sudo pwconv
Bây giờ, hãy xác minh các thay đổi:
sudo cat /etc/passwd | grep newuser2
sudo cat /etc/shadow | grep newuser2
Ví dụ đầu ra:
newuser2:x:1002:1002::/home/newuser2:/bin/bash
newuser2:$6$xxxxxxxxxx:18692:0:99999:7:::
Thông tin mật khẩu cho tài khoản newuser2
hiện được lưu trữ chính xác trong tệp /etc/shadow
.
Bằng cách sử dụng các lệnh pwunconv
và pwconv
cùng nhau, bạn có thể khắc phục mọi sự cố liên quan đến chuyển đổi mật khẩu và đảm bảo rằng mật khẩu người dùng được lưu trữ an toàn trong tệp /etc/shadow
.
Tóm tắt
Trong lab này, trước tiên chúng ta đã khám phá mục đích của lệnh pwconv
trong Linux, được sử dụng để chuyển đổi tệp mật khẩu truyền thống /etc/passwd
sang tệp mật khẩu shadow an toàn hơn /etc/shadow
. Chúng ta đã học được rằng tệp /etc/passwd
hiển thị mật khẩu người dùng dưới dạng văn bản thuần túy, trong khi tệp /etc/shadow
lưu trữ mật khẩu đã mã hóa và chỉ có thể truy cập được bởi người dùng root, cung cấp khả năng bảo vệ mật khẩu tốt hơn.
Tiếp theo, chúng ta đã đề cập đến cách tạo và quản lý mật khẩu người dùng bằng lệnh pwconv
. Chúng ta đã thảo luận về quy trình tạo tài khoản người dùng mới và đặt mật khẩu cho chúng, cũng như cách cập nhật mật khẩu người dùng hiện có. Ngoài ra, chúng ta đã khám phá các kỹ thuật khắc phục sự cố để giải quyết mọi vấn đề có thể phát sinh trong quá trình chuyển đổi mật khẩu.