Cara Beralih (su) ke Akun Pengguna Lain tanpa Kata Sandi


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 (akun sistem pengguna super PostgreSQL default), kami menginginkan setiap pengguna (biasanya basis data PostgreSQL kami dan administrator sistem) dalam grup bernama postgres untuk beralih ke akun postgres menggunakan perintah su tanpa memasukkan kata sandi.

Secara default, hanya pengguna root yang dapat beralih ke akun pengguna lain tanpa memasukkan kata sandi. Pengguna lain mana pun akan diminta memasukkan kata sandi akun pengguna yang mereka gunakan (atau jika mereka menggunakan perintah sudo, mereka akan diminta memasukkan kata sandi), jika mereka tidak memberikan kata sandi yang benar, mereka mendapatkan kesalahan “autentikasi gagal ” seperti yang ditunjukkan pada tangkapan layar berikut.

Anda dapat menggunakan salah satu dari dua solusi yang disediakan di bawah ini untuk mengatasi masalah di atas.

1. Menggunakan Modul Otentikasi PAM

PAM (Modul autentikasi yang dapat dicolokkan) merupakan inti autentikasi pengguna pada sistem operasi Linux modern. Untuk memungkinkan pengguna dalam grup tertentu beralih ke akun pengguna lain tanpa kata sandi, kita dapat mengubah pengaturan PAM default untuk perintah su di /etc/pam.d/su mengajukan.

vim /etc/pam.d/su
OR
sudo vim /etc/pam.d/su

Tambahkan konfigurasi berikut setelah “auth cukup 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, baris default=1 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 di grup postgres, jika ya, proses autentikasi dianggap berhasil dan hasilnya cukup. Jika tidak, langkah otentikasi 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 akun postgres 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 melakukan 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 berada di file sudoers atau di grup sudo untuk dapat dapat menjalankan perintah sudo.

sudo visudo

Kemudian tambahkan konfigurasi berikut di bawah baris “%sudo ALL=(ALL:ALL) ALL ” seperti terlihat pada gambar layar berikut.

aaronk ALL=NOPASSWD: /bin/su – postgres

Simpan dan tutup file.

Sekarang coba su ke akun postgres sebagai pengguna aaronk, shell tidak akan 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 halaman sudo command juga (man sudo).

man pam.conf
man sudo