Tôi đã phạm cùng một lỗi khi thêm tài khoản của mình vào một nhóm (quên mất -a
). Tôi đã cài đặt hệ thống của mình với khóa đăng nhập gốc và tài khoản của tôi là tài khoản duy nhất trên máy.
Câu trả lời được chấp nhận không giúp tôi. Trong khi khởi động vào chế độ phục hồi, tất cả những gì tôi nhận được là một tin nhắn không có ích
Không thể mở quyền truy cập vào bàn điều khiển, tài khoản root bị khóa. Xem trang man sulogin (8) để biết thêm chi tiết
Nhấn ENTER để tiếp tục
Sau khi nhấn ENTER, hệ thống khởi động bình thường: không may mắn có quyền truy cập root để khắc phục sự cố. Vào thời điểm này, tôi sẽ để lại câu trả lời này. Chỉ sử dụng các mục sau nếu bạn không thể vào chế độ khôi phục thông qua menu Grub .
Một hướng dẫn để có được vỏ gốc:
- Khởi động vào menu Grub và tô sáng (nhưng không nhấn Entervào!) Tùy chọn khởi động bình thường (mặc định, không phải là recovery!).
- Nhấn
e
. Grub sẽ hiển thị một trình soạn thảo dòng lệnh với nhiều dòng, mỗi dòng có thể trông lạ lẫm nếu không đáng sợ. Đừng lo lắng, mọi thay đổi bạn thực hiện sẽ không được lưu vĩnh viễn.
- Tìm dòng mà đọc
linux ... ro ...
. Đây là dòng lệnh kernel. Thay thế ro
mã thông báo bằng rw
, để làm cho hệ thống tập tin gốc đọc / ghi và thêm một tham số dòng lệnh kernel khác , init=/bin/sh
. Điều này hướng dẫn kernel thực thi sh
thay vì /sbin/init
. Cuối cùng, dòng nên như thế nào linux ... rw init=/bin/sh ...
. Lưu ý: Bạn có thể nhận được ngay cả với grub>
dấu nhắc trần . Tôi sẽ vui lòng giải thích làm thế nào, từng bước một, nếu tất cả những điều khác không thành công với bạn; Chỉ cần để lại một bình luận cho câu trả lời này.
- Sau khi thay đổi, nhấn F10để sử dụng các lệnh từ trình chỉnh sửa để khởi động hệ thống (hoặc đọc hướng dẫn cách khởi động ngay bên dưới cửa sổ trình chỉnh sửa, nếu Grub của bạn được biên dịch khác). Bạn sẽ nhận được lời nhắc shell root, vì quá trình init chạy dưới dạng PID 1 với danh tính gốc.
- Thực hiện thay đổi bạn muốn thực hiện, ví dụ
usermod -a -Gadm,sudo YOURUSERID
. Xác nhận id -a YOURUSERID
rằng bạn đã trở lại thành viên sudo của mình. Trong trường hợp bạn gặp lỗi "không tìm thấy lệnh", hãy sử dụng /sbin/usermod
và /bin/id
.
Bạn không thể tắt hoặc khởi động lại hệ thống sạch sẽ vào thời điểm này. reboot
, halt
Hoặc poweroff
sẽ không làm việc, và exit
từ vỏ sẽ dẫn đến một cơn hoảng loạn hạt nhân, như quá trình PID 1 có thể sẽ không chỉ thoát. Vì vậy, hai lệnh tiếp theo bạn phải ban hành là:
sync
exec /sbin/init
sync
chỉ trong trường hợp có lỗi xảy ra, để lưu tất cả các thay đổi vào đĩa và exec
thay thế vỏ bằng thực init
(có thể là systemd, upstart hoặc System V init, nhưng nó luôn được gọi /sbin/init
). Hệ thống rất có thể sẽ tiếp tục khởi động bình thường (không có chế độ phục hồi).
- Đăng nhập và khởi động lại hệ thống một lần, ví dụ
sudo reboot
- bạn nên lấy lại đặc quyền sudo của mình. Khởi động lại được khuyến nghị, vì (mặc dù rất hiếm khi) init
có thể được thông qua các tham số bổ sung trong quá trình khởi động bình thường và điều đó chúng tôi đã không làm. Trong trường hợp exec
không thành công, chỉ cần đặt lại máy và để máy khởi động bình thường. Tất cả các hệ thống tệp nhật ký hiện đại như ext4, xfs và btrfs đều tự phục hồi nhanh chóng (một vài giây để kiểm tra nhật ký nhiều nhất, nếu sync
ed trước khi thiết lập lại), và bạn sẽ hoàn tất.
Một chút nền tảng
Có một cuộc thảo luận về báo cáo lỗi Debian về chính vấn đề này, và theo như hiểu, đây là một tính năng và không phải là một lỗi, mà tôi đánh giá là khá sai lầm. Đã ở trong doanh nghiệp này 25 năm, tôi không thể giúp nhưng hoàn toàn không đồng ý với lập luận của Michael Biebl trong tin nhắn số 31 trong chủ đề đó:
Xem xét điều này: Bạn có một máy tính xách tay với tài khoản root bị khóa. Theo mặc định, bộ tải khởi động grub tạo ra một mục khởi động cho chế độ cứu hộ. Vì vậy, ngay cả khi bạn khóa bios để không cho phép khởi động từ CD-Rom hoặc USB và mật khẩu của bạn bảo vệ grub, ai đó có thể dễ dàng truy cập root nếu bạn không để máy tính xách tay trong giây lát.
Chính xác, IMO, nếu không đủ chung chung, sự phản đối đã được đưa ra trong thông điệp # 70 bởi Felipe Sateler:
Đối với nhiều máy tính (hầu hết?), Truy cập vật lý có nghĩa là trò chơi bị mất bảo mật, vì bạn chỉ cần tháo rời hộp và lấy ổ cứng.
Điều này đặc biệt đúng với máy tính xách tay, được đề cập trong lập luận của Michael: nếu bạn không để ý trong giây lát và ai đó đang theo dõi dữ liệu của bạn, máy tính xách tay sẽ không bao giờ được nhìn thấy nữa. Và đối với bất kỳ máy nào , không phải "nhiều" hay "nhất", ngay cả những máy được chốt 8 điểm vào giá đỡ, ngay khi kẻ tấn công có quyền truy cập vật lý vào máy, trò chơi đã thực sự kết thúc.