Pengguna tidak ada dalam file sudoers. Kejadian ini akan dilaporkan

24

Saya perlu menginstal paket. Untuk itu saya perlu akses root. Namun sistem mengatakan bahwa saya tidak ada dalam file sudoers. Ketika mencoba mengedit satu, itu sama saja! Bagaimana saya bisa menambahkan diri saya ke file sudoers jika saya tidak punya hak untuk mengeditnya?

Saya telah menginstal sistem ini dan hanya administrator. Apa yang dapat saya?

Sunting : Saya sudah mencoba visudo. Itu mengharuskan saya untuk berada di sudoers di tempat pertama.

amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for amarzaya: 
amarzaya is not in the sudoers file.  This incident will be reported.
amarzaya@linux-debian-gnu:/$ 
Sergiy Belozorov
sumber
4
Ya tentu saja user not(is) the sudoers file. (Typo in title)
Hello71
8
Anda berada di daftar nakal sekarang - xkcd.com/838
Aaron Newton

Jawaban:

18

Ini akan menjadi lubang keamanan jika Anda dapat menambahkan diri Anda /etc/sudoerstanpa sudo atau akses root. Pada dasarnya siapa pun bisa membuat diri mereka root.

Pada dasarnya Anda perlu meminta administrator mesin itu untuk menambahkan Anda, atau untuk menginstal paket untuk Anda, sesuai kebijakan situs.

Anda juga harus memastikan untuk menggunakan visudo untuk mengedit file sudoers - memeriksa apakah sintaks sudah benar sebelum menulis file. Dan Anda dapat menggunakan editor selain vi dengan visudo. Secara default akan menggunakan apa pun yang telah Anda tetapkan sebagai $EDITORdan jika Anda tidak mengaturnya Anda bisa melakukannya

# EDITOR=nano visudo

untuk menggunakan editor nano sebagai gantinya.

Hamish Downer
sumber
5
Saya adalah admin, karena ini adalah mesin saya dan saya telah menginstal sistem ini, tetapi tidak membantu :(
Sergiy Belozorov
9
Jika itu sistem Anda, maka Anda harus memasukkan kata sandi untuk pengguna root saat menginstal. Jadi login sebagai 'root' lalu lakukan hal-hal visudo.
Hamish Downer
Memang. Salahku. Saya lupa bahwa saya telah memasukkan kata sandi selama instalasi saat itu.
Sergiy Belozorov
24

Login sebagai root dan gunakan /usr/sbin/visudountuk mengedit file dan menambahkan nama pengguna Anda. Normal vi / vim tidak akan dapat mengedit file.

Cara termudah adalah dengan turun sampai Anda melihat baris " root ALL=(ALL) ALL" dan tambahkan diri Anda di bawahnya dengan sintaks yang sama ( yourusername ALL=(ALL) ALL). Atau, Anda dapat membaca halaman sudoers jika Anda ingin memberi diri Anda hak istimewa yang lebih spesifik.

Ricket
sumber
Itu mengharuskan saya untuk berada di daftar sudoers di tempat pertama untuk menjalankan visudo. Saya telah menginstal Debian ini, tidak ada admin lain.
Sergiy Belozorov
Jika Anda login sebagai root, Anda tidak perlu menjalankan sudo visudo; lari saja /usr/sbin/visudo. Tapi sepertinya Anda sudah menemukan ini, dari komentar jawaban lain.
Ricket
tidak cukup menambahkan masing-masing pengguna ke grup "sudo" atau "sudoers" (tergantung distro)? Sayangnya dalam kasus saya, itu tidak berhasil, tetapi saya bisa bersumpah ini digunakan untuk bekerja ...?
Gregor
5

Cukup ketikkan perintah:

$ su

Dan meminta kata sandi "root". Mengetik dan booming ... Berhasil!

Masalah ini adalah kesalahan saya. Karena akan kembali ke fasilitas pada saat saya membuat nama pengguna dan kata sandi.

Carlos Trisotto
sumber
Terima kasih itu sangat membantu dan menyelamatkan bacon saya! Tapi saya ingin tahu mengapa hanya menambahkan perintah ini dan kemudian password root, akan memungkinkan hak tinggi .... tampaknya agak mengalahkan tujuan pesan "Pengguna tidak ada dalam file sudoers. Insiden ini akan dilaporkan"
Sol
1

Mungkin cara termudah, setelah Anda root, adalah:

echo 'amarzaya ALL=(ALL) ALL' >> /etc/sudoers

sumber
7
Anda harus yakin untuk menggunakan visudo untuk mengedit file sudoers, daripada mengeditnya secara langsung atau menggemakan teks ke dalamnya. Ini akan memastikan bahwa itu secara sintaksis benar, dan memastikan bahwa Anda tidak mengunci diri dari akses, atau memberikan seseorang akses yang tidak patut.
pkaeding
1

Jika file sudoers Anda sudah berisi baris seperti ini

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Kemudian, cara paling bersih dalam melakukan sesuatu mungkin adalah memberikan admingrup kepada pengguna Anda. Misalnya, untuk menambahkan oracle pengguna ke admin grup :

usermod -aG admin oracle
Alain Pannetier
sumber
Itu yang saya cari. Bagi saya yang terbersih juga, tidak main-main dengan file sudoers.
webjunkie
1
Perintah yang benar adalahusermod -g oracle admin
kvanberendonck
-1: sintaksnya adalah usermod -g $group $user. Anda mungkin berpikir tentang addusersintaks, yaitu adduser $user $group.
Blacklight Shining
1
... sebenarnya, Anda kemungkinan besar akan menginginkannya usermod -aG $group $user. -gmenetapkan grup utama pengguna ke grup yang Anda tentukan, dan -Gtanpa itu -aakan menghapus pengguna dari grup yang tidak terdaftar. -gjuga akan mengubah kepemilikan grup dari semua file yang dimiliki oleh grup sebelumnya di direktori home pengguna. Jadi, jika Anda seperti saya dan Anda telah mengatur umask Anda untuk 007...
Blacklight Shining
1
@BlacklightShining. Kamu benar. Sintaks yang salah diusulkan oleh komentator sebelumnya dan karena oraclesering juga sebuah kelompok, memang ada ruang untuk kebingungan. Saya seharusnya tidak "diperbaiki".
Alain Pannetier
-1

Jika Anda masih dapat menggunakan akses root su, Anda dapat menggunakan satu-baris ini untuk menambahkan diri Anda ke /etc/sudoers/:

su -c 'echo $USER ALL=(ALL)ALL >> /etc/sudoers'

Untuk mengaktifkan perubahan, logout dan masuk lagi. Misalnya mengakhiri Sesi X Anda atau keluar melalui shell enter exit.

Bengt
sumber
-1: lihat komentar pkaeding .
Blacklight Shining
-1

Jika Anda tidak dapat menggunakan sudoperintah, maka Anda dapat menggunakan metode berikut:

  1. Tekan Ctrl+ Alt+F1
  2. Logout pengguna jika pengguna tidak root
  3. Masuk sebagai root
  4. Gunakan hak akses root
  5. Logout ( exit) - Ctrl+ Alt+ F7untuk sampai ke GUI
pengguna3113604
sumber
-1: Ini hanya berfungsi di beberapa lingkungan lokal yang benar-benar memiliki GUI.
Blacklight Shining
-1

Yang Anda butuhkan adalah menambahkan Anda <username>ke whellgrup.

# usermod -aG whell username

Kemudian login dengan nama pengguna Anda dan nikmati :)

EFernandes
sumber
-3

Masuk menggunakan yang berikut ini lebih dulu:

$ su

Kemudian lanjutkan dengan:

$ sudo apt-get update

atau apa pun seperti biasa

Alastair
sumber
1
Anda tidak perlu su- sudo melakukan ini.
Simon Sheehan
Mereka sebenarnya tidak persis sama. sudo adalah 'lakukan sebagai pengguna super', tetapi Anda masuk dengan kata sandi pengguna Anda. su adalah 'alihkan pengguna', dan secara default (tanpa argumen) ia mencoba untuk beralih ke pengguna root, dalam hal ini Anda perlu memasukkan kata sandi root. Tetapi Anda juga benar - menggunakan sudo setelah su adalah mubazir, karena Anda sudah menjadi pengguna root.
Aaron Newton
@ aaron.newton Saya sebenarnya akan membacanya sebagai Switch User dan DO; Anda dapat memilih pengguna mana saja untuk menjalankan perintah seperti pada -uflag. Hal ini sebagian besar digunakan untuk root, tapi begitu su.
Blacklight Shining
@ aaron.newton Saya sebenarnya akan membacanya sebagai Switch User dan DO; Anda dapat memilih pengguna mana saja untuk menjalankan perintah seperti pada -uflag. Hal ini sebagian besar digunakan untuk root, tapi begitu su.
Blacklight Shining