Hướng dẫn khôi phục mật khẩu root trên Linux Image Hướng dẫn khôi phục mật khẩu root trên Linux

Bài viết này hướng dẫn khôi phục mật khẩu (reset password) root trên hệ điều hành Linux giúp các bạn có thể tự học Linux dễ dàng.

Trong hệ điều hành Linux, superuser và user thông thường được phép truy cập dịch vụ thông qua xác thực mật khẩu. Khi user thông thường không thể nhớ mật khẩu thì chúng ta có thể dùng superuser đặt lại mật khẩu cho user thông thường. Tuy nhiên, nếu superuser (root) mất mật khẩu thì sao?

Chúng ta có thể khôi phục mật khẩu bị mất của một superuser (root). Tuy nhiên, phương pháp khôi phục mật khẩu bị mất này cho phép bất kỳ người dùng nào có quyền truy cập vào máy chủ Linux của bạn họ có thể chuyển quyền sở hữu hoàn toàn.

Trong bài viết này, chúng ta sẽ tìm hiểu cách khôi phục mật khẩu root bị mất trên các bảng phân phối của hệ điều hành Linux:

  • Nhóm CentOS 7/RHEL/Fedora
  • Nhóm Arch Linux
  • Nhóm Debian/Ubuntu/LinuxMint

Lưu ý: Các cách bên dưới chỉ hướng dẫn ở trường hợp Grub không có đặt password.

1. Nhóm CentOS/RHEL/Fedora

1.1 Nhóm CentOS

1.1.1. Bản phân phối CentOS 5

Bước 1: Vào menu Grub ⬇️:

Khi chúng ta khởi động CentOS5.1 thì chúng ta bấm phím bất kì để vào menu grub. Xuất hiện như hình bên dưới:

GRUB MENU

Tại đây chúng ta thực hiện bấm e để vào edit kernel....

Bước 2: Vào menu edit kernel ⬇️:

GRUB MENU 2

Tại đây chúng ta tiếp tục bấm e xuất hiện như hình bên dưới:

kernel

Bước 3: Tại dòng linux... chúng ta thêm vào cuối dòng 1 hoặc s hoặc single như bên dưới ⬇️:

Thêm thông số single mode là 1:

Thêm thông số 1

Thêm thông số single mode là s:

Thêm thông số s

Thêm thông số single mode là single:

Thêm thông số single

Nhấn Enter để save cấu hình tạm thời quay về màng hình grub, như bên dưới:

GRUB MENU 3

Nhấn phím b để khởi động các tùy chọn tạm thời này để cho phép bạn khôi phục tài khoản root của bạn.

Bây giờ bạn sẽ khởi động lên shell root và bạn có thể sử dụng passwd để đặt mật khẩu mới cho ueser root. Bạn sẽ được yêu cầu nhập mật khẩu hai lần.

Sau khi nhập pass xong chúng ta sẽ khởi động lại hệ thống. Chúng ta chạy lệnh sau:

reboot

Các thao tác được thực hiện như bên dưới:

Thực hiện tạo pass mới

Sau khi reset password cho superuser (root) thành công bạn có thể đăng nhập và sử dụng hệ thống với mật khẩu mới mà bạn đã tạo. Đây là cách bạn thay đổi mật khẩu root trên bản phân phối CentOS 5.

1.1.2. Bản phân phối CentOS 6

Bước 1: Vào menu Grub ⬇️:

Khi chúng ta khởi động CentOS5.1 thì chúng ta bấm phím bất kì để vào menu grub. Xuất hiện như hình bên dưới:

GRUB MENU 1

Tại đây chúng ta thực hiện bấm e để vào edit kernel....

Bước 2: Vào menu edit kernel ⬇️:

GRUB MENU 2

Tại đây chúng ta tiếp tục bấm e xuất hiện như hình bên dưới:

kernel

Bước 3: Tại dòng linux... chúng ta thêm vào cuối dòng 1 hoặc single như bên dưới ⬇️:

Thêm thông số single mode là 1:

Thêm thông số 1

Thêm thông số single mode là single mode:

Thêm thông số single mode

Nhấn Enter để save cấu hình tạm thời quay về màng hình grub, như bên dưới:

GRUB MENU 3

Nhấn phím b để khởi động các tùy chọn tạm thời này để cho phép bạn khôi phục tài khoản root của bạn.

Bây giờ bạn sẽ khởi động lên shell root và bạn có thể sử dụng passwd để đặt mật khẩu mới cho ueser root. Bạn sẽ được yêu cầu nhập mật khẩu hai lần.

Sau khi nhập pass xong chúng ta sẽ khởi động lại hệ thống. Chạy lệnh sau:

reboot

Các thao tác được thực hiện như bên dưới:

Thực hiện tạo pass mới

Sau khi reset password cho superuser (root) thành công bạn có thể đăng nhập và sử dụng hệ thống với mật khẩu mới mà bạn đã tạo. Đây là cách bạn thay đổi mật khẩu root trên bản phân phối CentOS 6.

1.1.3. Bản phân phối CentOS7/RHEL7 boot BIOS

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linux16... và thay đổi ro thành rw init=/sysroot/bin/sh ⬇️.

rw

Bước 4: Bây giờ nhấn Control + x để bắt đầu ở chế độ người dùng ⬇️.

Control+x

Trong chế độ người dùng, chúng ta sẽ thay đổi mật khẩu gốc. Đầu tiên chúng ta chạy lệnh như bên dưới:

chroot /sysroot

Tiếp theo chúng ta sẽ chạy các lệnh dưới đây để thay đổi mật khẩu cho superuser (root):

passwd root

Chúng ta sẽ nhắc tạo và xác nhận mật khẩu mới. Sau khi tạo mật khẩu, chạy lệnh bên dưới để cập nhật các tham số SELinux:

touch /.autorelabel

Thoát và khởi động lại hệ thống của bạn như sau:

exit
reboot

Lưu ý: Nếu hệ thống có đang dùng SELinux thì chúng ta mới thực hiện thêm các bước SELinux.

Cách thao tác trên được thực hiện như hình bên dưới:

Thực hiện tạo pass mới

Sau khi reset password cho superuser (root) thành công bạn có thể đăng nhập và sử dụng hệ thống với mật khẩu mới mà bạn đã tạo. Đây là cách bạn thay đổi mật khẩu root trên bản phân phối CentOS 7.

Lưu ý: Bản phân phối RHEL 7 cũng được thực hiện tương tự như bản phân phối CentOS 7.

1.1.4. Bản phân phối CentOS7 boot UEFI

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linuxefi... và thay đổi rhgb quiet thành rd.break enforcing=0 ⬇️.

rw

Bước 4: Bây giờ nhấn Control + x bạn sẽ bắt đầu ở chế độ người dùng ⬇️.

Sau khi bắt đầu ở chế độ người dùng, bạn phải remount filesystem là có thể ghi được vì nó được gắn ở chế độ chỉ đọc, bạn cần gõ lệnh sau:

mount -o remount,rw /sysroot

Chúng ta sẽ thay đổi mật khẩu gốc. Đầu tiên chúng ta chạy lệnh như bên dưới:

chroot /sysroot

Tiếp theo chúng ta sẽ chạy các lệnh dưới đây để thay đổi mật khẩu cho superuser (root):

passwd root

Chúng ta sẽ nhắc tạo và xác nhận mật khẩu mới. Sau khi tạo mật khẩu, chạy lệnh bên dưới để cập nhật các tham số SELinux:

touch /.autorelabel

Bây giờ bạn phải remount filesystem lại chế độ chỉ đọc:

mount -o remount,ro /

Thoát và khởi động lại hệ thống, chúng ta chạy lệnh sau hai lần:

exit

Lưu ý: Nếu hệ thống có đang dùng SELinux thì chúng ta mới thực hiện thêm các bước SELinux.

Chúng ta thực hiện như ảnh bên dưới:

Thực hiện tạo pass mới

Sau khi hệ thống khởi động lại chúng ta đăng nhập user root với passwd mới thực hiện các bước sau:

Nhập lệnh sau để khôi phục bảo mật SELinux của tập tin /etc/shadow:

restorecon /etc/shadow

Nhập các lệnh sau để bật lại thực thi chính sách của Selinux:

setenforce 1 

Thực hiện như sau:

Login

1.3. Nhóm Fedora

1.1.1. Bản phân phối Fedora

Ví dụ: Trong ví dụ dưới đây chúng ta thực hiện trên bản phân phối Fedora 29 Server

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linux và thay đổi rhgb quiet thành rd.break enforcing=0 ⬇️.

rw

Bước 4: Bây giờ nhấn Control + x để bắt đầu ở chế độ người dùng ⬇️.

Tại chế độ người dùng chúng ta thực hiện như sau:

  • Khi hệ thống khởi động ở chế độ khẩn cấp, bạn cần kết nối lại ổ cứng với quyền đọc và ghi bằng lệnh sau:

    mount -o remount,rw / sysroot
    
  • Đặt mật khẩu gốc bị quên trong Fedora

    Bây giờ hãy chạy lệnh sau để truy cập hệ thống Fedora:

    chroot /sysroot
    

    Bạn có thể đặt lại mật khẩu người dùng gốc Fedora đã quên hoặc bị mất bằng cách sử dụng lệnh:

    passwd
    
  • exit hai lần để khởi động lại hệ thống.

Cách thao tác được thực hiện như sau:

Thực hiện tạo pass mới

Bước 5: Đặt SELinux Context trên file /etc/shadow ⬇️

Đăng nhập vào user root và gõ lệnh sau để khôi phục SELinux trong file /etc/shadow:

restorecon -v /etc/shadow

Đưa SELinux trở lại chế độ thực thi:

setenforce 1

Chúng được thực hiện như bên dưới:

/etc/shadow

Sau khi reset password cho superuser (root) thành công bạn có thể đăng nhập và sử dụng hệ thống với mật khẩu mới mà bạn đã tạo. Đây là cách bạn thay đổi mật khẩu root trên bản phân phối Fedora.

2. Nhóm Arch Linux

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linux và thay đổi quiet thành init=/bin/bash ⬇️.

rw init=/bin/bash

Bước 4: Bây giờ nhấn Control + x hoặc F10 để bắt đầu ở chế độ người dùng ⬇️.

Control+x

Trong chế độ người dùng chúng ta cần thực hiện như sau:

Bạn cần kết nối lại ổ cứng với quyền đọc và ghi bằng lệnh sau sự thay đổi này sẽ chỉ là tạm thời và sẽ không được lưu trong tệp menu.ist boot của bạn.

mount -o remount,rw /

Sau đó, thay đổi mật khẩu người dùng root của bạn bằng cách sử dụng lệnh:

passwd

Chúng ta phải nhập mật khẩu mới hai lần và nhận được thông báo passd:password updated successfully:

Cuối cùng, nhập lệnh sau để áp dụng các thay đổi và khởi động Arch Linux của bạn:

exec /sbin/init

Các thao táo trên được thực hiện như hình bên dưới:

Thực hiện tạo pass mới

Sau khi reset password cho superuser (root) thành công. Bây giờ bạn có thể đăng nhập vào máy chủ Arch Linux của mình bằng mật khẩu người dùng root mới. Đây là cách bạn thay đổi mật khẩu root trên bản phân phối Arch Linux.

3. Nhóm Debian/Ubuntu/LinuxMint

3.1. Bản phân phối Debian

Trong ví dụ dưới đây chúng ta sẽ thực hiện trên bản phân phối Debian 9.8.0:

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

Trong bước đầu tiên, bạn cần khởi động lại hộp Debian vào menu của Grub. Chúng ta phải nhấn giữ phím SHIFT khi bạn khởi động máy tính cho đến khi menu của GRUB xuất hiện:

In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linux và thay đổi ro quiet thành rw init=/bin/bash ⬇️.

rw init=/bin/bash

Bước 4: Bây giờ nhấn Control + x hoặc F10 để bắt đầu ở chế độ người dùng ⬇️.

Bây giờ Debian sẽ khởi động vào chế độ một người dùng, bạn cần kết nối lại ổ cứng với quyền đọc và ghi bằng lệnh sau:

mount -o remount /

Tiếp theo chúng ta cần thay đổi mật khẩu người dùng root bằng cách sử dụng lệnh:

passwd

Khởi động lại hệ thống của bạn:

exec /sbin/init

Các bước trong chế độ người dùng được thực hiện như bên dưới:

Thực hiện tạo pass mới

Sử dụng mật khẩu mới mà chúng ta đã đặt để đăng nhập tài khoản người dùng root trên hệ thống của bạn.

Qua đây chúng ta biết được cách reset password của superuser (root) trên bản phân phối Debian của Linux.

3.2. Bản phân phối Ubuntu

Các bước reset password dưới đây được thực hiện trên bản phân phối Ubuntu 18.04.

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

Trong bước đầu tiên, bạn cần khởi động lại hộp Ubuntu vào menu của Grub. Chúng ta phải nhấn giữ phím SHIFT khi bạn khởi động máy tính cho đến khi menu của GRUB xuất hiện:

  • In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linux và thay đổi ro quiet thành rw init=/bin/bash ⬇️.

Chỉnh sửa nó để bao gồm chế độ đọc-ghi rw và init=/bin/bash. Thực hiện như sau:

rw init=/bin/bash

Bước 4: Bây giờ nhấn Control + x hoặc F10 để bắt đầu ở chế độ người dùng ⬇️.

Tại chế độ người dùng chúng ta thực hiện như sau.

Bạn cần kết nối lại ổ cứng với quyền đọc và ghi bằng lệnh sau:

mount -o remount /

Tiếp theo chúng ta đã sẵn sàng để thiết lập lại mật khẩu của user root. Chạy lệnh passwd. Khi được nhắc nhập mật khẩu root mới của bạn:

passwd

Chúng ta phải nhập mật khẩu mới hai lần và nhận được thông báo passd:password updated successfully:

Khởi động lại hệ thống của bạn:

exec /sbin/init

Các bước trong chế độ người dùng được thực hiện như bên dưới:

Thực hiện tạo pass mới

Sử dụng mật khẩu mới mà chúng ta đã đặt để đăng nhập tài khoản người dùng root trên hệ thống của bạn.

Qua đây chúng ta biết được cách reset password của superuser (root) trên bản phân phối Ubuntu của Linux.

3.3. Bản phân phối Linuxmint

Các bước reset password dưới đây được thực hiện trên bản phân phối Linuxmint 19.1:

Đối với bản phân phối Linuxmint chúng ta có hai cách thực hiện:

Cách thực hiện thứ nhất để reset password của Linuxmint 19.1

Bước 1: Trong menu grub khởi động, chọn tùy chọn để chỉnh sửa ⬇️.

Chúng ta cần vào menu khởi động của GRUB . Khi máy tính khởi động, giữ phím Shift.

In the boot grub menu select option to edit

Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.

Trong trình tải khởi động grub để chọn HĐH mong muốn và nhấn e để chỉnh sửa khởi động.

Select Option to edit (e).

Bước 3: Chuyển đến dòng linux và thêm init=/bin/bash vào sau ro quiet ⬇️.

rw init=/bin/bash

Bước 4: Bây giờ nhấn Control + x hoặc F10 để bắt đầu ở chế độ người dùng ⬇️.

Trong trường hợp này, sau khi kernel được tải, lập tức tiến hành bash cho phép bạn thay đổi mật khẩu cho tất cả người dùng. Chúng ta chạy lệnh sau:

passwd [user]

Sau đó, chỉ cần nhập mật khẩu mới 2 lần và nhận được thông báo passd:password updated successfully

Khởi động lại máy tính và có thể sử dụng mật khẩu mới.

exec /sbin/init

Các bước được thực hiện như sau:

Thực hiện tạo pass mới

Bây giờ chúng ta có thể đăng nhập user root với password mới của chúng ta.

Cách thực hiện thứ hai để reset password của Linuxmint 19.1

Bắt đầu theo cách tương tự, chúng ta cần nhập GRUB. Từ menu GRUB, chọn Advanced options for Linux Mint... và bấm phím Enter:

In the boot grub menu select option to edit

Vào Advanced options, chọn recovery mode mục menu GRUB bằng cách sử dụng phím ↓(mũi tên xuống), như thế này:

Advanced options chọn recovery mode

Sau khi chọn, bạn sẽ thấy một cửa sổ có nhiều tùy chọn, nhưng để khôi phục mật khẩu, bạn chỉ cần một root. Từ Recovery Menu, nhấn phím ↓(mũi tên xuống) để chọn root (Drop to root shell prompt), sau đó nhấn phím Enter:

Recovery Menu chọn root (Drop to root shell prompt)

Vì hệ thống tập tin ở chế độ chỉ đọc, Bạn cần kết nối lại ổ cứng với quyền đọc và ghi bằng lệnh sau:

```
mount -o remount,rw /
```

Chúng ta có thể thiết lập lại mật khẩu tài khoản root. Nhập lệnh bên dưới để thay đổi mật khẩu:

passwd [user]

Bạn sẽ được nhắc nhập mật khẩu mới, sau đó nhập lại mật khẩu để xác nhận.

Bạn đã hoàn thành việc thay đổi mật khẩu user root. Chạy lệnh sync để đảm bảo dữ liệu được ghi vào đĩa trước khi khởi động lại, sau đó khởi động lại hệ thống:

sync
reboot

Các bước thực hiện như ảnh bên dưới:

Thực hiện tạo pass mới

Bây giờ bạn sẽ có thể đăng nhập bằng mật khẩu mới của user root trên hệ thống Linux Mint của bạn.

4. Lời kết

Qua bài trên, giúp cho chúng ta biết cách reset password cho superuser (root) trên các bản phân phối của hệ điều hành Linux.