GNU/Linux >> Belajar Linux >  >> Linux

Apakah mungkin untuk mengubah file basis data kata sandi (/ etc/passwd) di linux?

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:

  1. Tune/hack nsswitch library (/lib/libnss_files.so atau libnss_db.so - periksa /etc/nsswitch.conf Anda) agar dapat membaca beberapa file lain.
  2. Tune/hack modul pam_unix sehingga dapat membaca beberapa file lain.

Linux
  1. Cara Mengubah Kata Sandi di Linux (perintah passwd)

  2. Memahami file /etc/hosts di Linux

  3. Contoh file /etc/services di Linux

  1. Memahami File Konfigurasi /etc/profile di Linux

  2. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  3. Di file /etc/hosts/ saya di Linux/OSX, bagaimana cara melakukan subdomain wildcard?

  1. Pengantar file Linux /etc/fstab

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus