Bagaimana ubuntu
pengguna pada gambar AWS untuk Ubuntu Server 12.04 memiliki kata sandi sudo
untuk semua perintah ketika tidak ada konfigurasi untuk itu /etc/sudoers
?
Saya menggunakan server Ubuntu 12,04 di Amazon. Saya ingin menambahkan pengguna baru yang memiliki perilaku yang sama dengan pengguna Ubuntu default. Secara khusus saya ingin kata sandi sudo
untuk pengguna baru ini.
Jadi saya telah menambahkan pengguna baru dan pergi untuk mengedit /etc/sudoers
(menggunakan visudo tentu saja). Dari membaca file itu sepertinya ubuntu
pengguna default memperolehnya tanpa kata sandi sudo
dari menjadi anggota admin
grup. Jadi saya menambahkan pengguna baru saya ke sana. Itu tidak berhasil. Kemudian saya mencoba menambahkan NOPASSWD
arahan ke sudoers
. Yang juga tidak berhasil.
Lagi pula, sekarang aku hanya ingin tahu. Bagaimana cara ubuntu
pengguna mendapatkan hak istimewa tanpa kata sandi jika mereka tidak didefinisikan dalam /etc/sudoers
. Apa mekanisme yang memungkinkan ini?
Jawaban:
Oke, saya sudah menemukan jawabannya jadi sebaiknya letakkan di sini untuk kelengkapan. Pada akhirnya
/etc/sudoers
ada yang saya pikir hanya komentar:Namun ini sebenarnya termasuk isi direktori itu. Di dalamnya ada file
/etc/sudoers.d/90-cloudimg-ubuntu
. Yang memiliki konten yang diharapkanJadi di situlah konfigurasi sudo untuk pengguna ubuntu default tinggal.
Anda harus mengedit file ini menggunakan visudo. Perintah berikut akan memungkinkan Anda mengedit file yang benar dengan visudo.
Dan tambahkan baris seperti:
Pada akhirnya.
sumber
/etc/sudoers.d/90-cloud-init-users
(jadi untuk mengedit ..sudo visudo -f /etc/sudoers.d/90-cloud-init-users
). Meskipun akan lebih bersih untuk membuat file tambahan daripada mengedit yang dihasilkan. Perhatikan bahwa file yang berisi.
atau berakhir di~
akan tidak disertakan.Saya menemukan bahwa hal paling lurus ke depan untuk dilakukan, agar mudah meniru perilaku ini di beberapa server, adalah sebagai berikut:
Ubah baris ini:
ke baris ini:
Dan pindahkan di bawah baris ini:
Anda seharusnya sudah memiliki ini:
lalu untuk setiap pengguna yang membutuhkan akses sudo DENGAN kata sandi :
dan untuk setiap pengguna yang membutuhkan akses sudo TANPA kata sandi :
dan akhirnya, jalankan ini:
Dan itu dia!
Sunting: Anda mungkin harus menambahkan grup admin karena menurut saya itu tidak ada secara default.
Anda juga dapat menambahkan
ubuntu
pengguna AWS default keadmin
grup melalui perintah ini:Catatan: Seperti yang disebutkan @hata , Anda mungkin perlu menggunakan
adm
nama grup admin Anda, tergantung pada versi Ubuntu yang digunakan.sumber
Saya akan membuat file saya sendiri di bawah direktori /etc/sudoers.d/ - file yang dibuat oleh Amazon Cloud mungkin akan ditimpa jika terjadi pembaruan. Setelah membuat file Anda di /etc/sudoers.d, tambahkan entri ini,
Nyalakan ulang sistem dan ini akan berhasil.
sumber
Jawaban singkat tanpa menggunakan editor apa pun (diuji pada bash, sangat berisiko untuk dijalankan pada host jarak jauh).
Konfigurasikan sudo agar berfungsi tanpa kata sandi untuk pengguna saat ini:
Periksa hasil edit dengan:
Verifikasi jika Anda dapat menggunakan sudo tanpa kata sandi:
... atau coba saja dengan:
sumber
echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers
visudo
sangat baik tentang tidak memungkinkan Anda untuk memecahkan file sudoers, sehingga tidak mengunci Anda keluar dari mesin Anda (atau setidaknya sudo).visudo
, tetapi biasanya tidak karena kecelakaan, karenavisudo
hanya menyimpan perubahan yang dibuat dengan baik sesuai dengan tata bahasa untuk file sudoers . Kebanyakan kesalahan secara sintaksis salah, sehingga tidak ada salahnyavisudo
. Jika/etc/sudoers
atau file dalam bentuk/etc/sudoers.d
yang buruk,sudo
menolak untuk meningkatkan hak istimewa bagi siapa pun sebagai tindakan keamanan, yang mengapa tidak menggunakanvisudo
berbahaya. (Meskipun kadangpkexec
- kadang dapat memperbaikinya tanpa reboot.)Inilah cara saya menerapkan pengguna non-root, tanpa kata sandi dalam Docker Image yang singkat untuk digunakan dalam pipa CICD:
sumber