Cara menukar (su) ke akaun pengguna lain tanpa kata laluan
- 1012
- 305
- Clay Weber
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 penggunaAnda 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 postgresKonfigurasikan 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 - PostgresTambahkan 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 - PostgresTambahkan 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 - postgresBeralih 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 sudoBaca yang berkaitan: 10 Konfigurasi Sudoer Berguna untuk Menetapkan 'Sudo' di Linux
- « Persediaan Log masuk SSH Tanpa Kata Laluan untuk Pelbagai Pelayan Jauh Menggunakan Skrip
- Cara memasang postgresql dan pgadmin di rhel 8 »