GNU/Linux >> Belajar Linux >  >> Linux

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 (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 sudo
Bacaan Terkait :10 Konfigurasi Sudoers yang Berguna untuk Mengatur 'sudo' di Linux
Linux
  1. Cara ssh sebagai pengguna lain

  2. Bagaimana cara membuat pengguna root tambahan?

  3. bagaimana Anda membuat kunci ssh untuk pengguna lain?

  1. Cara Membuat Akun Pengguna Linux secara manual

  2. UNIX / Linux :Cara mengunci atau menonaktifkan akun pengguna

  3. Cara Mengubah Kata Sandi Akun Pengguna Kontainer LXC

  1. Bagaimana cara menambahkan akun FTP di Plesk?

  2. Bagaimana cara mengkonfigurasi postgresql untuk pertama kalinya?

  3. Bagaimana cara menjalankan skrip sebagai pengguna lain tanpa kata sandi?