Anda benar:/etc/passwd
dan /etc/shadow
dikonsultasikan oleh pam_unix.so
, yang merupakan bagian dari PAM. Setidaknya di Linux modern. Anda dapat mengubahnya dengan menambal pam_unix.so
. Jika halaman manual dapat dipercaya, Anda tidak dapat mengubah lokasi basis data sistem.
Dan Anda benar-benar tidak mau. /etc/passwd
tidak hanya digunakan untuk autentikasi, tetapi juga digunakan untuk (membalikkan) resolusi nama dan untuk mencari hal-hal seperti nama lengkap pengguna, shell, dan lain-lain. Nama dan lokasi sangat standar sehingga memindahkannya hampir pasti akan merusak hal-hal di luar PAM saja. Anda harus menambal lebih banyak dari yang Anda harapkan.
Perbarui: Jika Anda mencoba menyembunyikan /etc/{passwd,shadow,group}
file untuk keamanan, jangan khawatir. Keamanan dengan ketidakjelasan jarang membantu sebagai kebijakan. Biarkan mereka di tempatnya dan perketat kebijakan Anda yang lain.
Pembaruan:kemungkinan solusi
Jika Anda memiliki beberapa perangkat lunak khusus yang Anda perlukan untuk mengakses kumpulan basis data pengguna/grup yang berbeda, Anda dapat membuat salinan modul PAM dan NSS yang relevan dan menambal mereka untuk menggunakan database kustom Anda. Basis data unix asli tetap berada di tempatnya sehingga perangkat lunak tidak bingung, tetapi Anda dapat menyetel PAM dan NSS untuk menggunakan modul khusus di mana pun Anda perlu dan menggunakan kebijakan apa pun yang masuk akal bagi Anda.
Jaga agar basis data unix tetap murni dan Anda mendapatkan apa yang Anda minta. Ini adalah radius
dan ldap
Modul PAM/NSS berfungsi:menyediakan tambahan (bukan pengganti) sumber kredensial dan informasi pengguna/grup.
Melangkah lebih jauh:Anda dapat kembali ke PAM dan NSS dan menonaktifkan pencarian basis data unix sama sekali. Biarkan file di sana untuk perangkat lunak lama (tentu saja, pandangan mereka terhadap basis data pengguna/grup akan tidak akurat, tetapi setidaknya tidak akan rusak).
Yang Anda cari adalah pam_pwdfile
modul. Di Debian/Ubuntu paketnya adalah libpam-pwdfile
(tidak yakin tentang distro turunan RedHat).
README
disertakan dengan paket menjelaskan cara menggunakannya.
Saya tidak yakin apakah itu mungkin di luar kotak, tapi itu pasti mungkin dengan beberapa peretasan. Untuk melakukannya, Anda harus:
- Tune/hack nsswitch library (/lib/libnss_files.so atau libnss_db.so - periksa /etc/nsswitch.conf Anda) agar dapat membaca beberapa file lain.
- Tune/hack modul pam_unix sehingga dapat membaca beberapa file lain.