Di mana dan bagaimana kata laluan disimpan di Linux?

Where How Are Passwords Stored Linux



Nama pengguna dengan kata laluan yang sesuai untuk akaun tertentu adalah syarat utama di mana pengguna dapat mengakses sistem Linux. Semua kata laluan akaun pengguna disimpan dalam fail atau pangkalan data sehingga pengguna dapat disahkan semasa percubaan masuk ke dalam sistem. Setiap pengguna tidak mempunyai kemahiran dan kepakaran yang mencukupi untuk mencari fail ini di sistem mereka. Namun, jika anda mendapat akses ke pangkalan data atau fail yang menyimpan semua kata laluan pengguna log masuk, maka anda dapat mengakses sistem Linux dengan mudah. Apabila pengguna memasukkan nama pengguna dan kata laluan di Linux untuk masuk, ia memeriksa kata laluan yang dimasukkan dengan entri dalam pelbagai fail direktori '/ etc'.

Fail / etc / passwd menyimpan semua maklumat penting yang diperlukan untuk log masuk pengguna. Untuk menjelaskannya dengan kata yang lebih mudah, fail / etc / passwd menyimpan butiran akaun pengguna. Fail ini adalah fail teks biasa yang berisi senarai lengkap semua pengguna di sistem Linux anda. Ia mempunyai maklumat mengenai nama pengguna, kata laluan, UID (id pengguna), GID (id kumpulan), shell, dan direktori home. Fail ini semestinya mempunyai izin membaca kerana banyak utiliti baris perintah digunakan untuk memetakan ID pengguna ke nama pengguna. Tetapi, semestinya mempunyai kebenaran akses tulis terhad untuk akaun pengguna super atau root.







Artikel ini akan menunjukkan bagaimana dan di mana anda boleh menyimpan kata laluan akaun pengguna sistem pada pengedaran Linux. Kami telah melaksanakan semua demonstrasi pada sistem Ubuntu 20.04. Walau bagaimanapun, anda boleh mencari / etc / passwd file di mana-mana pengedaran Linux.



Pra-syarat

Anda harus mempunyai hak root untuk menjalankan perintah pentadbiran.



Pemahaman Asas mengenai / etc / passwd File

Fail / etc / passwd mengandungi maklumat mengenai akaun pengguna sistem anda. Semua medan yang tersimpan dipisahkan dari tanda titik dua: titik dua.
Apabila anda menjalankan perintah berikut, anda akan melihat setiap entri fail / etc / passwd file:





$kucing /dan lain-lain/kata laluan

Perintah di atas akan menyenaraikan semua pengguna sistem Linux anda.
Jenis format berikut akan dipaparkan di skrin terminal anda:

Butiran mengenai / etc / passwd field Format
Dari gambar di atas:

Nama pengguna: Medan satu mewakili nama pengguna. Panjang bidang nama pengguna ditentukan antara 1-32 aksara. Ini digunakan semasa pengguna masuk ke dalam sistem. Dalam contoh di atas, ‘khuzdar’ adalah nama pengguna.
Kata Laluan: Dalam contoh di atas, watak x menunjukkan bahawa kata laluan disimpan dalam bentuk yang dienkripsi dalam fail / etc / shadow.
ID Pengguna (UID): ID Pengguna mesti diberikan secara berasingan kepada setiap pengguna. Sifar UID diberikan kepada pengguna root, dan ID Pengguna dari 1-99 ditetapkan ke akaun yang telah ditetapkan atau standard. UID selanjutnya dari 100-999 diberikan kepada akaun pentadbiran kumpulan atau kumpulan. Dalam tangkapan skrin di atas, ID pengguna adalah 1001.
ID Kumpulan (GID): Medan seterusnya mewakili ID kumpulan. GID disimpan ke dalam fail / etc / group. Berdasarkan contoh di atas, pengguna tergolong dalam kumpulan id 1001.
Maklumat mengenai ID Pengguna: Medan berikut ditujukan untuk komen. Di bidang ini, anda boleh menambahkan beberapa maklumat tambahan mengenai pengguna yang ditentukan, seperti nama penuh pengguna, nombor telefon, dll. Namun, dalam contoh di atas, tidak ada nombor telefon yang diberikan oleh pengguna.
Direktori rumah: Medan ini menunjukkan lokasi direktori utama yang diberikan kepada pengguna semasa. Sekiranya direktori yang ditentukan tidak ada, maka akan dipaparkan /. Gambar di atas menunjukkan lokasi pengguna yang disorot di direktori home, iaitu home / kbuzdar.
Perintah // shell: Laluan mutlak shell atau arahan lalai adalah / bin / bash. Ini dikenali sebagai cengkerang. Contohnya, sysadmin menggunakan shell nologin. Ia berperanan sebagai shell pengganti untuk akaun pengguna sistem. Sekiranya shell terletak di jalan ke / sbin / nologin dan pengguna ingin log masuk terus ke sistem Linux, shell / sbin / nologin akan menutup atau mematikan sambungan.



Cari pengguna dalam fail / etc / passwd

Anda boleh mencari pengguna tertentu dengan / etc / passwd file, menggunakan perintah grep. Sebagai contoh, kami ingin mencari nama pengguna 'kbuzdar' dari / etc / passwd file, menggunakan sintaks berikut, maka kami dapat dengan mudah mencari pengguna yang ditentukan, menjimatkan masa kami:

$cengkamannama pengguna/dan lain-lain/kata laluan

Sintaks di atas akan berubah menjadi bentuk berikut:

$cengkamanmencicit/dan lain-lain/kata laluan


Atau

$cengkaman -dalam '^ kbuzdar' /dan lain-lain/kata laluan

Memaparkan kebenaran pada / etc / passwd file

Seperti yang kami sebutkan di atas, semua pengguna lain, kecuali root, harus dapat membaca izin pada file / etc / passwd, dan pemiliknya harus menjadi superuser atau root.
Taipkan yang berikut untuk memeriksa kebenaran membaca pada fail:

$ls -tempat /dan lain-lain/kata laluan

Contoh output berikut akan dipaparkan di terminal:

Membaca / etc / passwd file

Anda boleh membaca fail / etc / passwd pada sistem Linux anda dengan menggunakan skrip bash berikut atau menjalankan secara langsung apa yang ditulis di bawah semasa perintah gelung di terminal.
Buat fail teks dan tampal kod berikut di dalamnya:

#! / bin / bash
# jumlah tujuh medan dari / etc / passwd disimpan sebagai $ f1, f2 ..., $ f7

sementara IFS=:membaca -rf1 f2 f3 f4 f5 f6 f7
buat
membuang 'Pengguna$ f1menggunakan$ f7shell dan menyimpan fail di$ f6direktori. '
selesai < /dan lain-lain/kata laluan

Dengan menggunakan loop sementara, ia akan membaca semua tujuh bidang dan kemudian secara berulang-ulang memaparkan kandungan fail di terminal.
Simpan fail di atas dengan nama 'readfile.sh'.

Sekarang, jalankan fail di atas dengan menggunakan arahan berikut:

$bashreadfile.sh

Terokai / etc / file bayangan

Fail / etc / shadow mengandungi semua kata laluan anda yang disulitkan yang disimpan dalam fail ini yang hanya dapat dibaca untuk pengguna root.
Mari jalankan perintah berikut untuk memaparkan kandungannya:

$sudo kucing /dan lain-lain/bayangan

Anda dapat melihat semua kata laluan dalam format yang dienkripsi:

Kesimpulannya

Kami telah melihat dari artikel di atas, semua butiran akaun dan kata laluan pengguna yang tersimpan di / etc / passwd file dalam sistem Linux. Anda boleh membaca fail ini, tetapi hanya pengguna root yang mempunyai kebenaran menulis. Selain itu, kami juga telah melihat semua kata laluan yang disulitkan disimpan pada fail / etc / shadow. Anda juga boleh meneroka fail / etc / group untuk mendapatkan maklumat mengenai kumpulan pengguna.