Dalam panduan ini, kami akan menunjukkan cara beralih ke akun pengguna lain atau tertentu tanpa memerlukan kata sandi. Misalnya, kami memiliki akun pengguna bernama postgres (default PostgreSQL akun sistem superuser), kami menginginkan setiap pengguna (biasanya PostgreSQL kami) database dan administrator sistem) dalam grup yang disebut postgres untuk beralih ke postgres akun menggunakan su
perintah tanpa memasukkan kata sandi.
Secara default, hanya pengguna root yang dapat beralih ke akun pengguna lain tanpa memasukkan kata sandi. Pengguna lain akan diminta untuk memasukkan kata sandi akun pengguna yang mereka tuju (atau jika mereka menggunakan perintah sudo, mereka akan diminta untuk memasukkan kata sandi), jika mereka tidak memberikan kata sandi yang benar, mereka mendapatkan sebuah “otentikasi gagal ” kesalahan seperti yang ditunjukkan pada tangkapan layar berikut.
Anda dapat menggunakan salah satu dari dua solusi yang disediakan di bawah ini untuk menyelesaikan masalah di atas.
1. Menggunakan Modul Otentikasi PAM
PAM (Modul autentikasi yang dapat dicolokkan ) adalah inti dari otentikasi pengguna pada sistem operasi Linux modern. Untuk mengizinkan pengguna dalam grup tertentu untuk beralih ke akun pengguna lain tanpa kata sandi, kami dapat mengubah pengaturan PAM default untuk perintah su di /etc/pam.d/su berkas.
# vim /etc/pam.d/su OR $ sudo vim /etc/pam.d/su
Tambahkan konfigurasi berikut setelah “auth enough pam_rootok.so ” seperti yang ditunjukkan pada tangkapan layar berikut.
auth [success=ignore default=1] pam_succeed_if.so user = postgres auth sufficient pam_succeed_if.so use_uid user ingroup postgres
Dalam konfigurasi di atas, baris pertama memeriksa apakah pengguna target adalah postgres , jika ya, layanan akan memeriksa pengguna saat ini, jika tidak, default=1
baris dilewati dan langkah-langkah otentikasi normal dijalankan.
auth [success=ignore default=1] pam_succeed_if.so user = postgres
Baris berikutnya memeriksa apakah pengguna saat ini berada dalam grup postgres , jika yes
, proses autentikasi dianggap berhasil dan hasilnya cukup cukup. Jika tidak, langkah autentikasi normal akan dijalankan.
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
Simpan file dan tutup.
Selanjutnya, tambahkan pengguna (misalnya aaronk ) yang ingin Anda su
ke akun postgres tanpa kata sandi ke grup postgres menggunakan perintah usermod.
$sudo usermod -aG postgres aaronk
Sekarang coba su
ke postgres akun sebagai pengguna aaronk , Anda tidak akan dimintai kata sandi seperti yang ditunjukkan pada tangkapan layar berikut:
$ su - postgres
2. Menggunakan File Sudoers
Anda juga dapat su
ke pengguna lain tanpa memerlukan kata sandi dengan membuat beberapa perubahan pada file sudoers. Dalam hal ini, pengguna (misalnya aaronk ) yang akan beralih ke akun pengguna lain (misalnya postgres ) harus ada di file sudoers atau di grup sudo agar dapat menjalankan perintah sudo .
$ sudo visudo
Kemudian tambahkan konfigurasi berikut di bawah baris “%sudo ALL=(ALL:ALL) ALL”
seperti yang ditunjukkan pada tangkapan layar berikut.
aaronk ALL=NOPASSWD: /bin/su – postgres
Simpan dan tutup file.
Sekarang coba su
ke akun postgres sebagai pengguna aaronk , shell seharusnya tidak meminta Anda memasukkan kata sandi:
$ sudo su - postgres
Itu saja untuk saat ini! Untuk informasi lebih lanjut, lihat halaman entri manual PAM (man pam.conf ) dan perintah sudo juga (man sudo ).
$ man pam.conf $ man sudoBacaan Terkait :10 Konfigurasi Sudoers yang Berguna untuk Mengatur 'sudo' di Linux