Làm cách nào để thêm bản thân trở lại là người dùng sudo?


64

Tôi đã cài đặt Ubuntu 11.10 sạch ngày hôm nay và sau đó cài đặt VirtualBox. Điều này yêu cầu tôi thêm bản thân vào nhóm vboxusers và vì 11.10 dường như không còn ứng dụng đồ họa để thêm người dùng vào nhóm, tôi đã chạy lệnh sau:

sudo usermod -G vboxusers stephane

Đây là một vấn đề. Bây giờ tôi thấy những gì tôi nên chạy thay thế là:

sudo usermod -aG vboxusers stephane

Kết quả cuối cùng là tôi không còn trong các nhóm tôi nên tham gia. Bao gồm bất kỳ nhóm nào được yêu cầu để chạy "sudo". Khi tôi chạy bất kỳ lệnh nào như sudo bây giờ, tôi nhận được như sau:

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

Có cách nào để khắc phục điều này không, hay tôi cần phải cài đặt lại từ đầu?

Câu trả lời:


65
  1. Trong khi khởi động, nhấn và giữ phím trái Shift và bạn sẽ thấy menu GRUB.

  2. Chọn mục có chứa ( chế độ phục hồi ) và chờ đợi.

  3. Bây giờ bạn sẽ được trình bày với một menu. Lựa chọn:

    remount    Remount / read/write and mount all other file systems 
    

    và đợi hệ thống tệp của bạn được gắn kết với quyền đọc / ghi, sau đó nhấn Enter.

    Nếu tùy chọn này không xuất hiện hoặc không hoạt động, thay vào đó bạn có thể chọn roottùy chọn và sử dụng lệnh sau để gắn phân vùng hệ thống:

    mount -o remount /
    

    Bạn có thể kiểm tra xem đó là phân vùng hệ thống của bạn bằng fscklệnh hoặc bằng cách xem /etc/mtab.

    Sau khi chạy thành công lệnh mount (tức là không có thông báo lỗi), hãy tiếp tục trực tiếp đến bước 5 bên dưới.

  4. Sau khi chọn remounttùy chọn, menu sẽ xuất hiện trở lại. Lựa chọn:

    root       Drop to root shell prompt
    
  5. Bây giờ, nhập một trong các lệnh sau để thêm lại người dùng của bạn vào adminnhóm (đối với Ubuntu 11.10 trở về trước):

    adduser <USERNAME> admin
    

    hoặc cho sudonhóm (cho Ubuntu 12.04 trở lên):

    adduser <USERNAME> sudo
    
  6. Khởi động lại và bạn sẽ có thể sử dụng sudolại.


3
Nếu bạn không thấy menu "remount", trước tiên bạn có thể chọn "fsck", nó sẽ nhắc lại hệ thống tập tin của bạn để đọc / ghi. Sau đó, bạn có thể thêm người dùng của mình ở chế độ root.
Jiejing Zhang

1
Điều này làm việc cho tôi, ngoại trừ tôi phải gắn hệ thống tập tin bằng lệnh mount -o remount,rw /.
Passuf

Điều này hoạt động hoàn hảo. Ngoài ra, nó có vẻ như một vấn đề bảo mật lớn. Tôi đoán bạn nên vô hiệu hóa tính năng này trên các máy hợp lý? - Khi ở chế độ recovery, tôi không bao giờ có thể khởi động lại. Tôi luôn phải sử dụng reboot -f.
Romain Vincent

15

Nếu đăng nhập root được bật trên hệ thống của bạn, chỉ cần thả thiết bị đầu cuối qua Control+ Alt+ F1mà không đăng nhập vào X. Đăng nhập với quyền root và sau đó chỉ cần thêm người dùng mong muốn vào adminnhóm (cho Ubuntu 11.10 trở về trước):

adduser desired_user_name admin

Đối với Ubuntu 12.04 trở lên, hãy thêm người dùng vào sudonhóm:

adduser desired_user_name sudo

Nếu bạn không kích hoạt đăng nhập root, chỉ cần chọn chế độ phục hồi từ Grub và sau đó thử root shell.

Vỏ rễ

Mount hệ thống tập tin như đọc-ghi:

mount -o rw,remount /

Sau đó, bạn có thể thêm người dùng mong muốn vào nhóm admin(hoặc sudo).


Nhưng tôi không thể truy cập sudo từ người dùng của mình!
Jamie Hutber

7

Tôi đã thử các kết hợp khác nhau sau khi thực hiện điều tương tự như tùy chọn menu remount dường như không có trong 12.10. Tôi đã thử mọi thứ khác trong bài viết này từ root. Cuối cùng là

umount -a
mount -o -w /<path> /

Điều này dẫn đến hệ thống tập tin vẫn bị ro do cài đặt trong fstab để khởi động ro trên lỗi hệ thống tập tin, tôi nghĩ rằng nó dường như bị ro sau khi gắn kết.

Cuối cùng tôi đã quản lý nó với

mount -o rw,remount /

Mặc dù tôi không chắc nó khác với bộ lệnh trước đó như thế nào.

Sau khi áp dụng biến thể này, việc thêm người dùng vào nhóm admin(11.10 và ealrier) hoặc sudo(12.04 trở lên) được thực hiện theo cách tương tự:

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later

2

Câu hỏi cũ nhưng cũng xảy ra với tôi (Ubuntu 14.04).

Tôi không thể đăng nhập vào chế độ khôi phục và có quyền truy cập vào shell gốc, vì nhiều câu trả lời ở đây và các nơi khác mô tả: quyền truy cập shell gốc từ GRUB dường như được bảo vệ bằng mật khẩu.

Vì vậy, tôi đã giải quyết vấn đề theo cách này:

  1. khởi động trên một thanh usb sống
  2. mở vỏ
  3. truy cập hệ thống tệp HD Linux chính (bạn có thể tìm thấy điểm gắn của nó trong thanh địa chỉ của trình khám phá tệp GUI, thường là sau CTRL-L). cdvào nó
  4. chỉnh sửa tập tin etc/group(nói với nano etc/grouphoặc bất cứ điều gì khác)
  5. tìm dòng "sudo". Nên nhưsudo:x:27:admin,bob,alice
  6. thêm mình vào sudodòng, dấu phẩy tách

Tất nhiên, điều này ngụ ý rằng tập tin etc/sudoersvẫn giữ dòng

%sudo   ALL=(ALL:ALL) ALL

có nghĩa là tất cả các thành viên của nhóm sudocó toàn quyền kiểm soát. Đầu tiên hãy kiểm tra xem.

Làm việc không ổn định.


0

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:

  1. 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!).
  2. 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.
  3. Tìm dòng mà đọc linux ... ro .... Đây là dòng lệnh kernel. Thay thế romã 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 shthay 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.
  4. 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.
  5. 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 YOURUSERIDrằ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/bin/id.
  6. 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, haltHoặc poweroffsẽ không làm việc, và exittừ 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
    

    syncchỉ trong trường hợp có lỗi xảy ra, để lưu tất cả các thay đổi vào đĩa và execthay 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).

  7. Đă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) initcó 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 execkhô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 synced 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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.