Bagaimana saya bisa menambahkan pengguna baru sebagai sudoer menggunakan baris perintah?

820

Setelah saya menambahkan pengguna menggunakan adduser, saya tidak bisa melihatnya melalui Sistem> Administrasi> Pengguna dan Grup kecuali saya logout dan kemudian login lagi. Apakah itu normal?

Juga, dapatkah saya menetapkan pengguna yang baru ditambahkan sebagai sudoer atau apakah saya harus mengubahnya hanya setelah menambahkannya? Bagaimana saya bisa melakukannya melalui shell?

Akhirnya, dapatkah saya menghapus pengguna asli yang dibuat saat instalasi awal Ubuntu, atau apakah pengguna ini entah bagaimana 'istimewa'?

David B
sumber

Jawaban:

1024

Cukup tambahkan pengguna ke sudogrup :

sudo adduser <username> sudo

Perubahan akan mulai berlaku saat pengguna masuk berikutnya.

Ini berfungsi karena /etc/sudoerssudah dikonfigurasikan sebelumnya untuk memberikan izin kepada semua anggota grup ini (Anda tidak harus membuat perubahan apa pun pada ini):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Selama Anda memiliki akses ke pengguna yang berada dalam grup yang sama dengan pengguna "asli" Anda, Anda dapat menghapus yang lama.


Secara realistis, ada juga grup lain yang harus menjadi anggota pengguna baru Anda. Jika Anda mengatur tipe akun pengguna ke Administrator di Pengaturan Pengguna, itu akan ditempatkan di setidaknya semua grup ini:

adm sudo lpadmin sambashare

Karena konfigurasi sistem Anda mungkin bervariasi, saya sarankan melihat output groups <username>untuk melihat grup apa yang biasanya digunakan.

ændrük
sumber
1
@ Dziamid Saya tidak yakin untuk apa sudogrup ini. Ayo cari tahu.
ændrük
7
Harap dicatat bahwa admingrup tidak ada dalam 12,04 LTS.
Ryan
18
Pertanyaannya adalah tentang pengguna yang sudah ada, tetapi jika itu untuk pengguna baru "sudo adduser <username> sudo" harus didahului oleh "sudo adduser <username>" . Jika tidak ada yang mendapatkan pesan kesalahan "Pengguna <username> tidak ada".
Peter Mortensen
9
ini tidak berhasil untuk saya. masih tidak bisa menggunakan sudo.
chovy
10
Harus masuk lagi agar bisa berfungsi.
PeterM
193

aku melakukannya

sudo usermod -a -G sudo <username>

seperti yang direkomendasikan di sini .

Leszek
sumber
28
grup sudo tidak ada
Aaron Esau
Satu-satunya solusi yang bekerja di sini. Ubuntu 16
Makan Tayebi
5
Untuk pengguna yang sudah ada, ini adalah solusi yang benar. Itu harus ditandai sebagai jawabannya.
Yokai
3
Jangan lupa -aberi tanda atau Anda akan menghapus pengguna dari semua grup kecualisudo
RousseauAlexandre
@RousseauAlexandre benar-benar! paling penting, terutama jika Anda mencoba menambahkan diri Anda ke grup non-sudo dan Anda satu-satunya di mesin dengan hak istimewa sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Buka file sudoers: sudo visudoakan membuka /etc/sudoersfile dalam editor yang ditentukan dalam $EDITOR(mungkin GNU nano - atur variabel jika bukan yang Anda inginkan, mis. export EDITOR="nano"Dan coba sudo visudolagi).

Tambahkan baris di bawah ini ke akhir file.

username ALL=(ALL) ALL   # Change the user name before you issue the commands

Kemudian lakukan WriteOut dengan Ctrl+ O. Editor akan meminta Anda untuk memasukkan nama file. Defaultnya adalah file sementara yang digunakan visudountuk memeriksa kesalahan sintaksis sebelum menyimpan ke sudoersfile yang sebenarnya . Tekan Enteruntuk menerimanya. Keluar dari editor nano dengan Ctrl+ X.

Selesai!

Mithun Sreedharan
sumber
9
Tidak disarankan untuk secara eksplisit menambahkan satu pengguna ke file sudoers alih-alih hanya menambahkan pengguna itu ke grup yang sesuai sudo.
Kzqai
3
dengan sudo visudo Anda dapat menampilkan ke /etc/sudoers.tmp, ketika meninggalkan editor, ia akan menimpa /etc/ sudoers dengan sendirinya
Climbatize
1
dan visudo akan memverifikasi sintaks untuk memastikan tidak ada kesalahan
mchid
kesalahan sintaksis jika menggunakan ini.
jheriko
2
Solusi lain berfungsi baik untuk OS dengan sudogrup bawaan, tetapi untuk sistem sesekali tanpa sudogrup khusus , solusi ini berfungsi. Satu-satunya rekomendasi yang saya miliki adalah Anda mungkin ingin menghindari menempatkan sudodirinya di dalam prosedur, karena mungkin belum diatur! Mudah diatasi dengan melakukan su -dan kemudian cukup visudio. Ini berfungsi di Gentoo.
tresf
30

Satu hal yang harus saya tambahkan bahwa saya yakin banyak orang tidak mengerti:

Setelah selesai adduser "username", Anda masih dapat kembali dan melakukan adduser "username" sudo, dan itu akan menambahkan pengguna itu ke grup dengan benar.

Ini sebenarnya tidak akan bekerja saat pertama kali suka sudo adduser username sudo. Ini akan memberi Anda kesalahan. Yang dalam ringkasan berarti Anda harus terlebih dahulu membuat akun pengguna sebelum Anda dapat menambahkannya ke grup.

TaunT406
sumber
11

Semua anggota grup admin, secara default di Ubuntu diizinkan untuk menggunakan sudo, jadi cara termudah adalah menambahkan akun pengguna ke admingrup.

Jika Anda tidak ingin memberikan akses root penuh ke akun pengguna, Anda perlu mengedit file / etc / sudoer dengan visudo (itu memastikan bahwa Anda tidak memiliki kesalahan sintaksis dalam file dan kehilangan kemampuan sudo sama sekali) dengan cara Anda menentukan perintah apa yang dapat dieksekusi oleh pengguna ini (atau grup baru) sebagai root.

The pengguna sudoer akan memberikan informasi lebih lanjut tentang ini. Anda dapat menentukan perintah mana yang diizinkan oleh pengguna / grup tertentu untuk dieksekusi sebagai root.

txwikinger
sumber
1
Saya pikir itu untuk apa wheelgrup itu?
Marco Ceppi
@ Marsco Saya tidak terbiasa dengan itu. Bisakah Anda jelaskan lebih banyak?
ændrük
@MarcoCeppi, grup roda digunakan pada beberapa sistem untuk membatasi apa yang dapat digunakan pengguna su. Penggunaan Ubuntu sudodan grup admin.
psusi
11

pada CentOS, saya lakukan sebagai root

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
jowan sebastian
sumber
10

Cuplikan berikut memberikan akses root ke nama pengguna tanpa secara eksplisit masuk sebagai root.

Pastikan bahwa pengguna ditambahkan ke grup sudo terlebih dahulu. Diuji pada Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
sumber
apakah ini berfungsi di Ubuntu?
jowan sebastian
1
Ya diperiksa di Ubuntu 16.04
Sandeep
3
mengapa tidak dalam satu baris:useradd -m username --groups sudo
Aidan Melen