Cara menukar (su) ke akaun pengguna lain tanpa kata laluan

Cara menukar (su) ke akaun pengguna lain tanpa kata laluan

Dalam panduan ini, kami akan menunjukkan cara beralih ke akaun pengguna lain atau tertentu tanpa memerlukan kata laluan. Contohnya, kami mempunyai akaun pengguna yang dipanggil Postgres (Lalai PostgreSQL akaun sistem superuser), kami mahukan setiap pengguna (biasanya kami PostgreSQL pangkalan data dan pentadbir sistem) dalam kumpulan yang dipanggil Postgres Untuk beralih ke Postgres akaun menggunakan su perintah tanpa memasukkan kata laluan.

Secara lalai, hanya pengguna root yang boleh beralih ke akaun pengguna lain tanpa memasukkan kata laluan. Mana -mana pengguna lain akan diminta memasukkan kata laluan akaun pengguna yang mereka beralih ke (atau jika mereka menggunakan arahan sudo, mereka akan diminta memasukkan kata laluan mereka), jika mereka tidak memberikan kata laluan yang betul, mereka mendapat "pengesahan gagal"Ralat seperti yang ditunjukkan dalam tangkapan skrin berikut.

Kesalahan kegagalan pengesahan pengguna

Anda boleh menggunakan mana -mana dua penyelesaian yang disediakan di bawah untuk menyelesaikan masalah di atas.

1. Menggunakan Modul Pengesahan Pam

Pam (Modul pengesahan pluggable) berada di teras pengesahan pengguna pada sistem pengendalian Linux moden. Untuk membolehkan pengguna dalam kumpulan tertentu beralih ke akaun pengguna lain tanpa kata laluan, kami dapat mengubah suai tetapan PAM lalai untuk perintah su di dalam /etc/Pam.d/su fail.

# Vim /etc /Pam.D/Su atau $ sudo vim/etc/Pam.d/su 

Tambahkan konfigurasi berikut selepas “Pam_rootok yang mencukupi.Jadi"Seperti yang ditunjukkan dalam tangkapan skrin berikut.

auth [kejayaan = abaikan lalai = 1] PAM_SUCELE_IF.jadi pengguna = postgres auth PAM_SUCED_IF yang mencukupi.jadi use_uid pengguna ingroup postgres 

Dalam konfigurasi di atas, baris pertama memeriksa jika pengguna sasaran adalah Postgres, Sekiranya, perkhidmatan memeriksa pengguna semasa, jika tidak, lalai = 1 garis dilangkau dan langkah pengesahan biasa dilaksanakan.

auth [kejayaan = abaikan lalai = 1] PAM_SUCELE_IF.jadi pengguna = postgres 

Garis yang mengikuti cek jika pengguna semasa berada dalam kumpulan Postgres, jika Ya, Proses pengesahan dianggap berjaya dan mengembalikan cukup hasilnya. Jika tidak, langkah pengesahan biasa dilaksanakan.

auth PAM_SUCELED_IF yang mencukupi.jadi use_uid pengguna ingroup postgres 
Konfigurasikan Pam untuk membenarkan perintah SU tanpa kata laluan

Simpan fail dan tutupnya.

Seterusnya, tambahkan pengguna (contohnya Aaronk) yang anda mahukan su ke akaun Postgres tanpa kata laluan kepada kumpulan Postgres Menggunakan perintah usermod.

$ sudo usermod -ag postgres aaronk 

Sekarang cuba su kepada Postgres akaun sebagai pengguna Aaronk, Anda tidak boleh diminta untuk kata laluan seperti yang ditunjukkan dalam tangkapan skrin berikut:

$ Su - Postgres 
Tambahkan pengguna ke kumpulan

2. Menggunakan fail sudoers

Anda juga boleh su kepada pengguna lain tanpa memerlukan kata laluan dengan membuat beberapa perubahan dalam fail sudoers. Dalam kes ini, pengguna (contohnya Aaronk) yang akan beralih ke akaun pengguna lain (contohnya Postgres) harus berada di dalam fail sudoer atau dalam kumpulan sudo untuk dapat memanggil perintah sudo.

$ sudo visudo 

Kemudian tambahkan konfigurasi berikut di bawah garis "%Sudo semua = (semua: semua) semua" Seperti yang ditunjukkan dalam tangkapan skrin berikut.

Aaronk All = NoPasswd: /bin /Su - Postgres 
Tambahkan pengguna ke fail sudoer

Simpan dan tutup fail.

Sekarang cuba su ke akaun Postgres sebagai pengguna Aaronk, Shell tidak boleh meminta anda memasukkan kata laluan:

$ sudo su - postgres 
Beralih ke pengguna lain tanpa kata laluan

Itu sahaja buat masa ini! Untuk maklumat lanjut, lihat halaman Kemasukan Manual PAM (Man Pam.Conf) dan itu perintah sudo juga (lelaki sudo).

$ lelaki Pam.conf $ man sudo 
Baca yang berkaitan: 10 Konfigurasi Sudoer Berguna untuk Menetapkan 'Sudo' di Linux