Nếu chúng ta không biết mật khẩu root và không có quyền truy cập root vào máy, làm thế nào chúng ta có thể thay đổi mật khẩu root?
Nếu chúng ta không biết mật khẩu root và không có quyền truy cập root vào máy, làm thế nào chúng ta có thể thay đổi mật khẩu root?
Câu trả lời:
Dưới đây là một vài cách tôi có thể nghĩ ra, từ ít xâm phạm nhất đến xâm phạm nhất.
Với sudo: nếu bạn có sudo
quyền chạy passwd
, bạn có thể làm:
sudo passwd root
Nhập mật khẩu của bạn , sau đó nhập mật khẩu mới để root hai lần. Làm xong.
Chỉnh sửa file : công trình này trong trường hợp không chắc bạn không có đầy đủ sudo
quyền truy cập, nhưng bạn làm có quyền truy cập để chỉnh sửa /etc/{passwd,shadow}
. Mở /etc/shadow
, hoặc với sudoedit /etc/shadow
, hoặc với sudo $EDITOR /etc/shadow
. Thay thế trường mật khẩu của root (tất cả các ký tự ngẫu nhiên giữa dấu hai chấm thứ hai và thứ ba :
) bằng trường mật khẩu của chính người dùng của bạn. Tiết kiệm. Các địa phương có cùng mật khẩu với bạn. Đăng nhập và thay đổi mật khẩu để một cái gì đó khác.
Đây là những người dễ dàng.
Chế độ một người dùng : Điều này vừa được Renan giải thích. Nó hoạt động nếu bạn có thể truy cập GRUB (hoặc bộ tải khởi động của bạn) và bạn có thể chỉnh sửa dòng lệnh Linux. Nó không hoạt động nếu bạn sử dụng Debian, Ubuntu và một số thứ khác. Một số cấu hình bộ tải khởi động yêu cầu mật khẩu để làm như vậy và bạn phải biết điều đó để tiếp tục. Nếu không có thêm rắc rối:
kernel
hoặc linux
.Hệ thống của bạn sẽ khởi động trong chế độ người dùng. Một số bản phân phối sẽ không yêu cầu bạn nhập mật khẩu gốc vào thời điểm này (những bản phân phối dựa trên Debian và Debian). Bây giờ bạn đã root. Thay đổi mật khẩu của bạn:
mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
và reboot
, hoặc, nếu bạn biết runlevel bình thường của bạn, hãy nói telinit 2
(hoặc bất cứ điều gì).
Thay thếinit
: bề ngoài tương tự như thủ thuật chế độ người dùng đơn lẻ, với phần lớn các hướng dẫn tương tự, nhưng đòi hỏi nhiều năng lực hơn với dòng lệnh. Bạn khởi động kernel của bạn như trên, nhưng thay vì single
, bạn thêm init=/bin/sh
. Điều này sẽ chạy /bin/sh
thay thế init
, và sẽ cung cấp cho bạn một vỏ rất sớm mà hầu như không có tiện nghi. Tại thời điểm này, mục tiêu của bạn là:
passwd
chạy đi.passwd
lệnh.Tùy thuộc vào thiết lập cụ thể của bạn, chúng có thể là tầm thường (giống với hướng dẫn cho chế độ người dùng đơn) hoặc không tầm thường: tải mô-đun, khởi tạo phần mềm RAID, mở khối lượng mã hóa, bắt đầu LVM, et cetera. Nếu không init
, bạn không chạy dons hoặc bất kỳ quy trình nào khác ngoài /bin/sh
con của nó, vì vậy bạn tự mình thực sự xinh đẹp. Bạn cũng không có kiểm soát công việc, vì vậy hãy cẩn thận với những gì bạn nhập. Một vị trí sai cat
và bạn có thể phải khởi động lại nếu bạn không thể thoát ra khỏi nó.
Cứu đĩa : cái này dễ. Khởi động một đĩa cứu hộ của sự lựa chọn của bạn. Gắn hệ thống tập tin gốc của bạn. Quá trình này phụ thuộc vào cách khối lượng của bạn được xếp lớp, nhưng cuối cùng sẽ nắm rõ:
# do some stuff to make your root volume available.
# The rescue disk may, or may not do it automatically.
mkdir /tmp/my-root
mount /dev/$SOME_ROOT_DEV /tmp/my-root
$EDITOR /tmp/my-root/etc/shadow
# Follow the `/etc/shadow` editing instructions near the top
cd /
umount /tmp/my-root
reboot
Rõ ràng, $SOME_ROOT_DEV
là bất cứ tên thiết bị khối nào được gán cho hệ thống tập tin gốc của bạn bằng đĩa cứu hộ và $EDITOR
là trình soạn thảo yêu thích của bạn (có thể phải vi
nằm trong hệ thống cứu hộ). Sau khi reboot
, cho phép máy khởi động bình thường; mật khẩu của root sẽ là mật khẩu của chính người dùng của bạn. Đăng nhập bằng root và thay đổi nó ngay lập tức.
Rõ ràng, có vô số biến thể ở trên. Tất cả đều sôi xuống hai bước:
Điều này sẽ làm việc trên bất kỳ distro, tôi nghĩ.
Nếu bạn có thể truy cập phân vùng gốc từ một hệ thống khác, ví dụ như đĩa CD trực tiếp, bạn có thể root từ đó chỉnh sửa /etc/shadow
; đầu tiên bạn phải chmod u+w shadow
. Tìm mục cho root
, đây có thể là mục đầu tiên và trông giống như thế này:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Xóa mọi thứ giữa hai dấu hai chấm đầu tiên để bạn kết thúc với:
root::15666:0:99999:7:::
Sau đó chmod u-w shadow
. Bây giờ bạn có thể khởi động lại hệ thống và root sẽ không có mật khẩu. Bạn chỉ có thể gõ root
tại dấu nhắc đăng nhập và nó sẽ không yêu cầu. Sau đó bạn có thể sử dụng passwd
để thiết lập một.
Cẩn thận hơn:
/etc/shadow
đầu tiên.passwd
trong môi trường chroot từ CD trực tiếp?
/etc/shadow
Đánh giá từ các thẻ tôi cho rằng bạn đang sử dụng RHEL, nhưng giải pháp này sẽ hoạt động tốt như nhau cho tất cả các bản phát hành.
Nếu mật khẩu gốc bị quên, bạn có thể khởi động ở chế độ một người dùng và sử dụng mật khẩu này để thay đổi mật khẩu. Cách tiếp cận này được mô tả trong hướng dẫn từng bước của Red Hat :
kernel
, nhấn elại.single
. Sau đó nhấn ENTERvà boot từ nó.Cuối cùng, bạn sẽ nhận được một dấu nhắc nơi bạn có thể nhập passwd root
và thay đổi mật khẩu. Sau đó gõ reboot
để khởi động lại hệ thống.
/boot/grub/grub.conf
để xóa mật khẩu bộ nạp khởi động và /etc/inittab
thay đổi trình bao người dùng đơn thành một cái gì đó như / bin / sh (cc @pradeepchhetri)