Nama pengguna tidak ada dalam file sudoers. Kejadian ini akan dilaporkan

85

Saya menjalankan Ubuntu 12.04 di laptop saya menggunakan VMware Player. Saya tidak yakin mengapa tetapi saya memiliki akun yang disebut "Akun Pengguna" selain akun saya yang biasanya saya masuki untuk menggunakan Ubuntu. Yah itu hanya komentar sampingan tetapi pada dasarnya semua yang saya coba lakukan adalah menginstal perpustakaan ncurses di Ubuntu. Saya telah mencoba menginstal ncurses menggunakan baris perintah berikut:

sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-dev

Ketika saya mencoba menginstal ncurses dua kali menggunakan perintah di atas, saya menerima prompt berikut di terminal:

[sudo] password for username

Ketika saya mengetik kata sandi, saya menerima pesan berikut:

username is not in the sudoers file. This incident will be reported.

Sejauh ini saya telah mencoba mengaktifkan akun pengguna root ("Pengguna Super") dengan mengikuti instruksi di tautan ini: https://help.ubuntu.com/community/RootSudo

Berikut beberapa hal yang disarankan untuk dilakukan oleh tautan:

Izinkan pengguna lain menjalankan sudo. Ketik yang berikut di baris perintah:

sudo adduser username sudo

Atau

sudo adduser username sudo

masuk sebagai pengguna lain. Ketik yang berikut di baris perintah:

sudo -i -u nama pengguna

Mengaktifkan akun root. Ketik yang berikut di baris perintah:

sudo -i

Atau

sudo passwd root

Saya sudah mencoba semua baris perintah di atas dan setelah mengetik di setiap perintah saya diminta kata sandi. Setelah saya memasukkan kata sandi, saya menerima pesan yang sama seperti ketika saya mencoba menginstal ncurses:

fsolano is not in the sudoers file. This incident will be reported.
fsolano94
sumber
Saya belum punya komentar yang terlalu telanjang di sini ... Pertanyaan. Apakah fsolano adalah pengguna pertama yang Anda buat dengan menginstal ubuntu? biasanya yang seharusnya memiliki hak admin, jika Anda melakukan fungsi admin dalam arti grafis apakah itu bekerja untuk Anda? Yaitu jika Anda membuka GUi untuk manajemen pengguna dan mencoba untuk melakukan sesuatu yang admin berfungsi? atau memberi tahu Anda bahwa Anda tidak melakukan root
Pertanyaan yang sama juga ditanyakan di sini? superuser.com/questions/866582/…
shubham
jika Anda memiliki pengguna root dengan kata sandi yang ditetapkan, Anda dapat login root menggunakan sudan menambahkan sendiri ke grup sudo àdduser username sudolain, Anda harus boot dengan live cd / usb dan chroot ke sistem yang diinstal, itu akan login ke root secara default , atur kata sandi root untuk kasus-kasus berikutnya passwd, dan tambahkan diri Anda ke sudo dari sana, dan reboot, Anda akan menambahkan nama pengguna Anda ke sudo dan juga Anda akan memiliki kata sandi root, jika seandainya sudo masih tidak berfungsi, Anda dapat menanganinya ....
Jonah
2
xkcd.com/838
Revetahw

Jawaban:

57

Ketika ini terjadi pada saya, yang harus saya lakukan untuk memperbaikinya adalah:

Langkah 1. Buka jendela terminal, CTRL+ ALT+ T di sistem saya (Debian KDE setelah pengaturan sebagai hotkey)

Langkah 2. Memasuki root menggunakan perintah su root

Langkah 3. Masukkan kata sandi root

Langkah 4. Masukkan perintah apt-get install sudo -yuntuk menginstalsudo

Langkah 5. Tambahkan pengguna ke file sudoers dengan memasukkan adduser username, letakkan nama pengguna Anda di tempatusername

Langkah 6. Tetapkan izin yang benar untuk file sudoers dengan memasukkan chmod 0440 /etc/sudoers

Langkah 7. Ketik exitdan tekan Entersampai Anda menutup jendela terminal Anda. Matikan sistem Anda sepenuhnya dan reboot.

Langkah 8. Buka jendela terminal lain.

Langkah 9. Coba perintah sudo apa pun untuk memeriksa apakah nama pengguna Anda ditambahkan dengan benar ke file sudoers. Saya menggunakan sudo echo "Hello World!". Jika nama pengguna Anda telah ditambahkan dengan benar ke daftar sudoers maka Anda akan mendapatkan Hello World!respons terminal!

Shrikant Khawale
sumber
15
-1: tidakcd - akan pergi ke direktori home tetapi ke direktori lain yang terbaru. tidak akan meminta kata sandi pengguna Anda tetapi untuk Anda root kata sandi. Jangan tidak mengedit secara manual menggunakan untuk itu. Sistem ubuntu yang umum tidak memiliki kata sandi root sama sekali tetapi hanya mengandalkan sudo. sudo -/etc/sudoersvisudo
michas
@michas Anda tidak dapat menggunakan visudo tanpa sudo di Debian. visolusi juga tidak memungkinkan karena hanya baca. Gedit berfungsi dalam kasus saya.
Léo Léopold Hertz 준영
Di debian 8 Anda dapat menggunakan vi tanpa sudo sebagai root. Untuk menulis ke file read-only, gunakan: wq!
The Oracle
Ini juga bekerja untuk saya, sungguh bantuan besar!
Arefe
Terima kasih atas jawaban anda. Tetapi saya bahkan tidak dapat menjalankansu -
Vishal
42

Ikuti tautan untuk mereset kata sandi admin Anda [sepertinya Anda menamai akun pengguna admin Anda sebagai 'pengguna' :)]

https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password

Setelah itu, login sebagai pengguna admin dan jalankan yang berikut.

sudo usermod -aG sudo,adm fsolano

Sekarang Anda dapat masuk sebagai 'fsolano' dan Anda harus dapat menjalankan perintah sudo.

Arul Selvan
sumber
1
Maaf saya lupa menyebutkan bahwa saya telah menyelesaikan masalah ini sejak lama. Ini adalah solusi untuk masalah yang saya miliki dan mungkin orang lain miliki.
fsolano94
3
Saya masih mendapatkan pesan setelah mengetik ini juga adduser NAME sudo. Saya pikir ada m, biasanya ada sesuatu yang lain. Saya menggunakan Debian 7.8.
Tomáš Zato
Ini bukan solusi yang memadai di Debian 8.5. Proposal ShrikantKhawale dengan sedikit tambahan adalah yang benar di sini.
Léo Léopold Hertz 준영
3
@masi Trik di atas tidak berfungsi di Debian 8.5 (setidaknya di sini), tetapi hanya setelah Anda keluar dan kembali lagi.
jcoppens
@jcoppens benar, berfungsi untuk Debian 8.6 juga, hanya setelah keluar dan masuk
hello_earth
13

Daftar file konfigurasi /etc/sudoers, yang diizinkan untuk menjalankan perintah mana sebagai pengguna mana.

Di ubuntu file ini berisi garis yang memungkinkan semua pengguna sudogrup untuk menjalankan perintah sebagai rootpengguna.

Untuk memeriksa pengguna mana yang ada dalam grup sudo, Anda dapat mengetik getent group sudo. Anda juga dapat memeriksa grup pengguna Anda saat ini dengan mengetik id.

Mungkin pengguna Anda saat ini tidak berada dalam grup sudo dan karenanya tidak diizinkan untuk menggunakan sudoperintah.

Masuk sebagai pengguna sudo aktif jika Anda ingin menjalankan sudo.

michas
sumber
Nah itu masalahnya. Saya akan masuk sebagai admin atau pengguna root tetapi saya lupa kata sandi ketika saya pertama kali menginstal Ubuntu pada mesin saya.
fsolano94
sudo: x: 27: user (saya tidak yakin apa itu x atau 27 tetapi saya yakin bahwa pengguna adalah akun pengguna yang saya tidak tahu / ingat kata sandinya)
fsolano94
@ fsolano94, boot ke beberapa bentuk lingkungan penyelamatan (baik secara langsung, atau boot dari media instalasi), dan ubah kata sandi root. Atau edit /etc/sudoersfile (lebih disukai menggunakan visudo(1)).
vonbrand
6

Saya mengalami masalah yang sama dengan Kali kapan saja saya ingin menambahkan newuser ke grup sudo dengan mengetikkan perintah ini:

usermod -aG sudo newuser

dan mengedit bagian kanan di /etc/sudoers. Semua omong kosong!

Perbaikan saya untuk omong kosong ini adalah menyalin baris untuk root di bawahnya dan mengubah root ke pengguna baru:

# User privilege specification
root    ALL=(ALL:ALL) ALL

newuser ALL=(ALL:ALL) ALL

Saya ingat metode yang biasa digunakan oleh usermod untuk bekerja tetapi apakah ini bug untuk beberapa tahun terakhir sekarang? ini benar-benar omong kosong. Lagi pula, jika seseorang memiliki jawaban yang lebih baik, silakan bagikan :)

tukang roti
sumber
Masalah yang sama pada debian reguler (9); pengeditan secara manual /etc/sudoersmelakukan trik
Zoe the transgirl
4

Lakukan ini untuk mengatur ulang kata sandi untuk pengguna admin Anda.

https://help.ubuntu.com/community/LostPassword

Kemudian, Anda dapat memberikan sudo izin kepada pengguna reguler Anda

sudo adduser username sudo

saat Anda memposting di pertanyaan awal Anda.

Ngomong-ngomong: mengapa Anda menginstal ncurses? Apakah Anda menyusun sesuatu?

Andrew M.
sumber
Saya pemrograman Tetris dalam C dan saya menggunakan kutukan sebagai platform lintas untuk antarmuka pengguna grafis. Dan ya saya akan mengikuti tautan
fsolano94
1

Anda juga dapat menambahkan pengguna ke grup sudo untuk semua hak akses dengan:

  1. Pergi ke pengguna direktori root Anda dengan sudo su(ubuntu 16.04 LTS)
  2. Kemudian masukkan kata sandi pengguna Anda saat ini
  3. ketik di sudo adduser <username> sudomana nama pengguna adalah nama pengguna yang ingin Anda tambahkan dalam daftar sudoers
  4. Untuk memeriksa apakah pengguna yang dibutuhkan Anda ditambahkan, ketik berhasil getent group sudoyang akan menampilkan daftar pengguna sudo
Yash Agrawal
sumber
Hai, selamat datang di Unix SE dan selamat untuk jawaban pertama yang bagus. Saya sedikit memperbaiki pemformatan Anda, Anda dapat mempelajari lebih lanjut tentang itu dengan mengklik "bantuan sintaksis" saat menulis posting.
GnP
1
Ini bukan jawaban yang bagus. (1) Pertanyaannya menyatakan itu sudotidak berfungsi untuk pengguna. (2) Jawabannya sudo adduser <username> sudosudah diberikan.
G-Man
0

Jika Anda memiliki pengguna root / admin selain 'fsolano', itu tidak ada dalam file sudoers. Kejadian ini akan dilaporkan:

check sudo enabled users (groups)
# getent group sudo 
sudo:x:27:xyz,abc 

karena pengguna 'fsolano' diubah menjadi pengguna standar dan jika Anda memiliki pengguna istimewa root lainnya, login melalui root dan ubah 'fsolano' ke administrator menggunakan "Akun Pengguna".

Dovegg
sumber
-1

Cara paling sederhana untuk menambahkan pengguna ke sudoersfile adalah menjalankan perintah di bawah sebagai pengguna dengan izin untuk mengeksekusi gpasswd:

sudo gpasswd -a username sudo
monteirobrena
sumber
Ini tidak berfungsi di Debian 8.5.
Léo Léopold Hertz 준영
-1

1. Anda dapat memeriksa apakah Anda adalah bagian dari grup sudo atau tidak dengan menggunakan perintah di bawah ini

groups username ===> it will lists the groups for which he belongs too

Kami juga dapat memeriksa dengan skrip di bawah ini

h=`groups username| awk -F ":" '{print $2}'| grep -io 'sudo'`
if [[ $h == "sudo" ]]
then
echo "user praveen is part of group sudo"
else
echo "Need to add user to group sudo"
echo "Swictch to root and add user"
fi
Praveen Kumar BS
sumber