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:
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 ⬇️:
Tại đây chúng ta tiếp tục bấm e xuất hiện như hình bên dưới:
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ố single mode là s
:
Thêm thông số single mode là 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:
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:
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:
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 ⬇️:
Tại đây chúng ta tiếp tục bấm e xuất hiện như hình bên dưới:
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ố single mode là 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:
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:
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 ⬇️.
Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.
Bước 3: Chuyển đến dòng linux16...
và thay đổi ro
thành rw init=/sysroot/bin/sh
⬇️.
Bước 4: Bây giờ nhấn Control + x để bắt đầu ở chế độ người dùng ⬇️.
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:
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 ⬇️.
Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.
Bước 3: Chuyển đến dòng linuxefi...
và thay đổi rhgb quiet
thành rd.break enforcing=0
⬇️.
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:
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:
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 ⬇️.
Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.
Bước 3: Chuyển đến dòng linux và thay đổi rhgb quiet
thành rd.break enforcing=0
⬇️.
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
Gõ
exit
hai lần để khởi động lại hệ thống.
Cách thao tác được thực hiện như sau:
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:
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 ⬇️.
Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.
Bước 3: Chuyển đến dòng linux và thay đổi quiet
thành 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 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:
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:
Bước 2: Chọn tùy chọn để chỉnh sửa (e) ⬇️.
Bước 3: Chuyển đến dòng linux và thay đổi ro quiet
thành 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:
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:
Bước 2: Chọn tùy chọn để chỉnh sửa (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:
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:
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.
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.
Bước 3: Chuyển đến dòng linux và thêm init=/bin/bash
vào sau ro quiet
⬇️.
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:
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:
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:
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:
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:
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.