Bagaimana saya menambahkan diri saya kembali sebagai pengguna sudo?

64

Saya membersihkan Ubuntu 11.10 hari ini, dan kemudian menginstal VirtualBox. Ini mengharuskan saya untuk menambahkan diri saya ke grup vboxusers, dan karena 11.10 tampaknya tidak lagi memiliki aplikasi grafis untuk menambahkan pengguna ke grup, saya menjalankan perintah berikut:

sudo usermod -G vboxusers stephane

Ini adalah sebuah masalah. Sekarang saya melihat apa yang seharusnya saya jalankan adalah:

sudo usermod -aG vboxusers stephane

Hasil akhirnya adalah saya tidak lagi berada di grup yang seharusnya. Termasuk grup apa pun yang diperlukan untuk menjalankan "sudo". Saat saya menjalankan perintah apa pun sebagai sudo sekarang, saya mendapatkan yang berikut:

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

Apakah ada cara untuk memperbaikinya, atau apakah saya perlu menginstal ulang dari awal lagi?

Stéphane
sumber

Jawaban:

65
  1. Selama boot, tekan dan tahan tombol kiri Shift , dan Anda akan melihat menu GRUB.

  2. Pilih entri yang berisi ( mode pemulihan ) dan tunggu.

  3. Anda sekarang harus disajikan dengan menu. Pilih:

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

    dan tunggu sistem file Anda dipasang dengan izin baca / tulis, lalu tekan Enter.

    Jika opsi ini tidak muncul atau tidak berfungsi, Anda dapat memilih rootopsi dan menggunakan perintah berikut untuk memasang partisi sistem:

    mount -o remount /
    

    Anda dapat memeriksa partisi sistem Anda dengan fsckperintah atau dengan melihat /etc/mtab.

    Setelah berhasil menjalankan perintah mount (yaitu tidak ada pesan kesalahan), lanjutkan langsung ke langkah 5 di bawah ini.

  4. Setelah memilih remountopsi, menu muncul lagi. Pilih:

    root       Drop to root shell prompt
    
  5. Sekarang masukkan salah satu dari perintah berikut untuk menambahkan kembali pengguna Anda ke admingrup (untuk Ubuntu 11.10 dan sebelumnya):

    adduser <USERNAME> admin
    

    atau ke sudogrup (untuk Ubuntu 12.04 dan yang lebih baru):

    adduser <USERNAME> sudo
    
  6. Nyalakan kembali dan Anda harus dapat menggunakan sudolagi.

htorque
sumber
3
Jika Anda tidak melihat menu "remount", Anda dapat memilih "fsck" terlebih dahulu, itu akan mengatur ulang sistem file Anda untuk membaca / menulis. Setelah itu, Anda dapat menambahkan pengguna Anda dalam mode root.
Jiejing Zhang
1
Ini bekerja untuk saya, kecuali saya harus me-mount sistem file menggunakan perintah mount -o remount,rw /.
Passuf
Ini bekerja dengan sempurna. Selain itu, sepertinya masalah keamanan besar. Saya kira Anda harus menonaktifkan fitur ini pada mesin yang masuk akal? - Ketika dalam mode pemulihan, saya tidak pernah bisa reboot. Saya selalu harus menggunakan reboot -f.
Romain Vincent
15

Jika login root diaktifkan di sistem Anda, cukup jatuhkan terminal melalui Control+ Alt+ F1tanpa masuk ke X. Masuk sebagai root dan kemudian tambahkan saja pengguna yang diinginkan ke admingrup (untuk Ubuntu 11.10 dan sebelumnya):

adduser desired_user_name admin

Untuk Ubuntu 12.04 dan yang lebih baru, tambahkan pengguna ke sudogrup:

adduser desired_user_name sudo

Jika Anda tidak mengaktifkan login root, pilih saja mode pemulihan dari Grub dan kemudian coba root shell.

Root Shell

Pasang sistem file sebagai baca-tulis:

mount -o rw,remount /

Setelah itu Anda dapat kembali menambahkan pengguna yang Anda inginkan ke grup admin(atau sudo).

heartsmagic
sumber
Tapi saya tidak bisa mengakses sudo dari pengguna saya!
Jamie Hutber
7

Saya sudah mencoba berbagai kombinasi setelah melakukan hal yang sama dengan opsi menu remount sepertinya tidak di 12.10. Saya sudah mencoba yang lain di postingan ini dari root. Yang terakhir adalah

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

Ini menghasilkan filesystem yang masih ro karena pengaturan di fstab untuk mem-boot ro pada kesalahan filesystem saya pikir, dengan itu menyatakan sepertinya ro setelah mount.

Saya akhirnya berhasil dengan

mount -o rw,remount /

Meskipun saya tidak yakin bagaimana ini berbeda dari set perintah sebelumnya.

Setelah menerapkan variasi ini, menambahkan pengguna ke grup admin(11.10 dan ealrier) atau sudo(12.04 dan lebih baru) dilakukan dengan cara yang sama:

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later
Jodi
sumber
2

Pertanyaan lama tetapi terjadi pada saya juga (Ubuntu 14.04).

Saya tidak dapat masuk ke mode pemulihan dan mendapatkan akses ke shell root, karena banyak jawaban di sini dan di tempat lain menggambarkan: akses shell root dari GRUB tampaknya dilindungi kata sandi.

Jadi saya memecahkan masalah dengan cara ini:

  1. boot pada usb stick hidup
  2. buka sebuah shell
  3. mengakses sistem file HD Linux utama (Anda dapat menemukan titik pemasangannya di bilah alamat penjelajah file GUI, biasanya setelah CTRL-L). cdke dalamnya.
  4. edit file etc/group(katakan dengan nano etc/groupatau apa pun)
  5. temukan baris "sudo". Seharusnya terlihat sepertisudo:x:27:admin,bob,alice
  6. tambahkan diri Anda ke sudobaris, pisahkan koma

Tentu saja, ini menyiratkan bahwa file tersebut etc/sudoersmasih memegang garis

%sudo   ALL=(ALL:ALL) ALL

artinya semua anggota grup sudomemiliki kendali penuh. Pertama periksa itu.

Bekerja dengan lancar.

kebs
sumber
0

Saya melakukan kesalahan yang sama menambahkan akun saya ke grup (lupa itu -a). Saya menginstal sistem saya dengan login root terkunci, dan akun saya adalah satu-satunya di mesin.

Jawaban yang diterima tidak membantu saya. Saat boot ke mode pemulihan, semua yang saya dapatkan adalah pesan yang tidak membantu

Tidak dapat membuka akses ke konsol, akun root dikunci. Lihat halaman manual sulogin (8) untuk lebih jelasnya
Tekan ENTER untuk melanjutkan

Setelah menekan ENTER, sistem boot secara normal: tidak beruntung mendapatkan akses root untuk memperbaiki masalah. Saya meninggalkan jawaban ini untuk berjaga-jaga seandainya seseorang berakhir pada posisi saya pada titik ini. Gunakan yang berikut ini hanya jika Anda tidak bisa masuk ke mode pemulihan melalui menu Grub .

Panduan untuk mendapatkan shell root:

  1. Boot ke menu Grub, dan sorot (tapi jangan tekan Enter!) Opsi boot normal (default, bukan pemulihan!).
  2. Tekan e. Grub akan menampilkan editor baris perintah dengan banyak baris, yang semuanya mungkin terlihat asing jika tidak mengintimidasi. Jangan khawatir, setiap perubahan yang Anda lakukan tidak disimpan secara permanen.
  3. Temukan baris yang berbunyi linux ... ro .... Ini adalah baris perintah kernel. Ganti rotoken dengan rw, untuk membuat sistem file root baca / tulis, dan tambahkan parameter baris perintah kernel init=/bin/sh,. Ini menginstruksikan kernel untuk mengeksekusi shbukan /sbin/init. Pada akhirnya, garis harus seperti linux ... rw init=/bin/sh .... Catatan: Anda dapat bertahan bahkan dengan grub>prompt kosong . Dengan senang hati saya akan menjelaskan bagaimana, langkah demi langkah, jika semuanya gagal untuk Anda; tinggalkan komentar untuk jawaban ini.
  4. Setelah perubahan, tekan F10untuk menggunakan perintah dari editor untuk mem-boot sistem (atau baca instruksi cara mem-boot tepat di bawah jendela editor, jika Grub Anda dikompilasi secara berbeda). Anda akan mendapatkan prompt shell root, karena proses init berjalan sebagai PID 1 dengan identitas root.
  5. Buat perubahan yang ingin Anda buat, misalnya usermod -a -Gadm,sudo YOURUSERID. Konfirmasikan id -a YOURUSERIDbahwa Anda telah mendapatkan kembali keanggotaan sudo Anda. Jika Anda mendapatkan kesalahan "perintah tidak ditemukan", gunakan /sbin/usermoddan /bin/id.
  6. Anda tidak dapat mematikan atau menyalakan ulang sistem dengan bersih pada saat ini. reboot, haltatau powerofftidak akan berfungsi, dan exitdari shell akan menyebabkan panik kernel, karena proses PID 1 tidak diharapkan untuk keluar begitu saja. Jadi dua perintah berikutnya yang harus Anda keluarkan adalah:

    sync
    exec /sbin/init
    

    synckalau-kalau ada yang tidak beres, untuk menyimpan semua perubahan ke disk, dan execuntuk mengganti shell dengan yang asli init(yang dapat systemd, pemula atau System V init, tetapi selalu disebut /sbin/init). Sistem kemungkinan besar akan melanjutkan boot secara normal (tanpa mode pemulihan).

  7. Login dan reboot sistem sekali, misalnya - Anda sudo rebootseharusnya mendapatkan hak istimewa sudo Anda kembali. Reboot disarankan, karena (walaupun sangat jarang) initdapat melewati parameter tambahan selama boot normal, dan itu tidak kami lakukan. Jika execgagal, cukup reset mesin dan biarkan boot normal. Semua filesystem jurnal modern seperti ext4, xfs dan btrfs pulih dengan cepat (beberapa detik untuk pemeriksaan jurnal paling banyak, jika syncdiedit sebelum reset), dan Anda akan siap.

Sedikit latar belakang

Ada diskusi tentang laporan bug Debian tentang masalah ini, dan, sejauh yang dipahami, ini diputuskan sebagai fitur dan bukan bug, yang saya anggap sebagai kesalahan. Setelah berkecimpung dalam bisnis ini selama 25 tahun, saya tidak dapat membantu tetapi sama sekali tidak setuju dengan argumen Michael Biebl dalam pesan # 31 di utas itu:

Pertimbangkan ini: Anda memiliki laptop dengan akun root yang terkunci. Secara default, boot loader grub membuat entri boot untuk mode penyelamatan. Jadi, bahkan jika Anda mengunci bios untuk tidak mengizinkan boot dari CD-Rom atau USB, dan Anda melindungi password grub, seseorang dapat dengan mudah mendapatkan akses root jika Anda meninggalkan laptop tanpa pengawasan sejenak.

Yang benar, IMO, jika tidak cukup umum, keberatan diberikan dalam pesan # 70 oleh Felipe Sateler:

Bagi banyak (kebanyakan?) Komputer, akses fisik berarti gim kehilangan keamanan, karena Anda hanya dapat membongkar kotak dan mendapatkan hard drive.

Ini berlaku terutama untuk laptop, yang disebutkan dalam argumen Michael: jika Anda membiarkannya tanpa pengawasan sesaat, dan seseorang mencari data Anda, laptop itu akan hilang dan tidak pernah terlihat lagi. Dan untuk mesin apa pun , bukan "banyak" atau "sebagian besar", bahkan yang dibaut 8 poin ke rak, segera setelah penyerang mendapatkan akses fisik ke mesin, permainan benar-benar berakhir.

kkm
sumber