Giả sử bạn đã đặt mật khẩu root cho máy ảo trên KVM, nhưng lại quên mất. Vậy thì làm sao để truy cập root được? Hãy sử dụng Guestfish để đặt lại mật khẩu root ở định dạng qcow2 trên KVM. Dưới đây là những gì bạn cần chuẩn bị và hướng dẫn làm.
Chuẩn bị bài LAB
- Trên môi trường VMware, sử dụng một máy ảo CentOS 7 đã cài đặt KVM.
- Tạo một máy ảo CentOS 7.0 với định dạng qcow2
Tiến hành đặt mật khẩu root
Bước 1: Cài đặt Guestfish
yum install libguestfs-tools -y
Bước 2: Shutdown máy ảo
virsh shutdown tên_máy_ảo
Bước 3: Đặt lại, thay đổi mật khẩu gốc bằng cách sử dụng Guestfish
Lưu ý: Đầu tiên tạo mật khẩu tài khoản người dùng root mới bằng cách gõ lệnh sau rồi sử dụng mật khẩu đã mã hóa để thay đổi.
openssl passwd -1 pass_mới
Sau đó chạy lệnh sau, đối với máy ảo Centos7:
guestfish --rw -a /var/lib/libvirt/images/centos7.0.qcow2
Tiếp theo sử dụng các lệnh sau
><fs> launch ><fs> list-filesystems
#liệt kê các phân vùng
/dev/sda1: xfs
/dev/centos/root: xfs
/dev/centos/swap: swap
><fs> mount /dev/centos/root /
#lưu ý lựa chọn mount vào phân vùng của hệ thống có chứa thư mục /etc.
><fs> vi /etc/shadow
#chỉnh sửa file shadow
VD: Tương tự đối với máy ảo ubuntu
Sau khi chạy xong lệnh vi /etc/shadow, sửa pass mã hóa ở phần root bằng pass mã hóa mới từ lệnh openssl ở bên trên rồi lưu lại:
Sau đó thoát khỏi Guestfish:
><fs> quit
Bước 4: Mở máy ảo với virt-manager rồi nhập pass mới
Vậy là bạn đã hoàn tất việc đặt lại mật khẩu root đã quên cho máy ảo ở định dạng qcow2 trên KVM.