Di mana dan bagaimana kata sandi disimpan di Linux?

Where How Are Passwords Stored Linux

Nama pengguna dengan kata sandi yang sesuai untuk akun tertentu adalah persyaratan utama di mana pengguna dapat mengakses sistem Linux. Semua kata sandi akun pengguna disimpan dalam file atau database sehingga pengguna dapat diverifikasi selama upaya masuk ke sistem. Setiap pengguna tidak memiliki keterampilan dan keahlian yang cukup untuk menemukan file ini di sistem mereka. Namun, jika Anda mendapatkan akses ke database atau file yang menyimpan semua kata sandi pengguna yang login, maka Anda dapat dengan mudah mengakses sistem Linux. Ketika pengguna memasukkan nama pengguna dan kata sandi di Linux untuk login, ia memeriksa kata sandi yang dimasukkan terhadap entri di berbagai file direktori '/ etc'.

File /etc/passwd menyimpan semua informasi penting yang diperlukan untuk login pengguna. Untuk menjelaskannya dengan kata-kata yang lebih sederhana, file /etc/passwd menyimpan detail akun pengguna. File ini adalah file teks biasa yang berisi daftar lengkap semua pengguna di sistem Linux Anda. Ini memiliki informasi tentang nama pengguna, kata sandi, UID (user id), GID (group id), shell, dan direktori home. File ini harus memiliki izin baca karena banyak utilitas baris perintah yang digunakan untuk memetakan ID pengguna ke nama pengguna. Namun, izin akses tulis harus dibatasi hanya untuk akun pengguna super atau pengguna root.



Artikel ini akan menunjukkan bagaimana dan di mana Anda dapat menyimpan kata sandi akun pengguna sistem di distribusi Linux. Kami telah mengimplementasikan semua demonstrasi pada sistem Ubuntu 20.04. Namun, Anda dapat menemukan file /etc/passwd di semua distribusi Linux.



Prasyarat

Anda harus memiliki hak akses root untuk menjalankan perintah administratif.



Pemahaman Dasar tentang /etc/passwd File

File /etc/passwd berisi informasi tentang akun pengguna sistem Anda. Semua bidang yang disimpan dipisahkan dari tanda titik dua :.
Saat Anda menjalankan perintah berikut, Anda akan melihat setiap entri file dari file /etc/passwd:

$kucing /dll/paswd

Perintah di atas akan mencantumkan semua pengguna sistem Linux Anda.
Jenis format berikut akan ditampilkan di layar terminal Anda:

Detail tentang /etc/passwd field Format
Dari gambar di atas:

Nama pengguna: Bidang satu mewakili nama pengguna. Panjang bidang nama pengguna ditentukan antara 1-32 karakter. Ini digunakan ketika pengguna masuk ke sistem. Dalam contoh di atas, 'khuzdar' adalah nama pengguna.
Kata sandi: Dalam contoh di atas, karakter x menunjukkan bahwa kata sandi disimpan dalam bentuk terenkripsi di file /etc/shadow.
ID Pengguna (UID): ID Pengguna harus ditetapkan secara terpisah untuk setiap pengguna. Nol UID ditetapkan ke pengguna root, dan ID Pengguna dari 1-99 ditetapkan ke akun standar atau standar. UID selanjutnya dari 100-999 ditugaskan ke akun atau grup administratif sistem. Pada tangkapan layar di atas, ID pengguna adalah 1001.
ID Grup (GID): Bidang berikutnya mewakili ID grup. GID disimpan ke dalam file /etc/group. Berdasarkan contoh di atas, pengguna termasuk dalam grup id 1001.
Informasi tentang ID Pengguna: Bidang berikut ditujukan untuk komentar. Di bidang ini, Anda dapat menambahkan beberapa informasi tambahan tentang pengguna yang ditentukan, seperti nama lengkap pengguna, nomor telepon, dll. Namun, dalam contoh di atas, tidak ada nomor telepon yang diberikan oleh pengguna.
Direktori rumah: Bidang ini menunjukkan lokasi direktori home yang ditetapkan untuk pengguna saat ini. Jika direktori yang ditentukan tidak ada, maka akan menampilkan /. Gambar di atas menunjukkan lokasi pengguna yang disorot di direktori home, yaitu home/kbuzdar.
Perintah // kulit: Jalur absolut default dari shell atau perintah adalah /bin/bash. Ini dikenal sebagai cangkang. Misalnya, sysadmin menggunakan shell nologin. Ini berperilaku sebagai shell pengganti untuk akun pengguna sistem. Jika shell terletak di jalur ke /sbin/nologin dan pengguna ingin masuk langsung ke sistem Linux, shell /sbin/nologin akan menutup atau menonaktifkan koneksi.



Cari pengguna di file /etc/passwd

Anda dapat mencari pengguna tertentu dengan file /etc/passwd, menggunakan perintah grep. Misalnya, kita ingin mencari nama pengguna 'kbuzdar' dari file /etc/passwd, menggunakan sintaks berikut, maka kita dapat dengan mudah mencari pengguna tertentu, menghemat waktu kita:

$pegangannama pengguna/dll/paswd

Sintaks di atas akan berubah menjadi bentuk berikut:

$pegangannyaring/dll/paswd


Atau

$pegangan -di dalam '^kbuzdar' /dll/paswd

Tampilkan izin pada file /etc/passwd

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

$ls -NS /dll/paswd

Contoh keluaran berikut akan ditampilkan di terminal:

Membaca file /etc/passwd

Anda dapat membaca file /etc/passwd di sistem Linux Anda dengan menggunakan skrip bash berikut atau langsung menjalankan apa yang tertulis di bawah ini saat perintah loop di terminal.
Buat file teks dan rekatkan kode berikut di dalamnya:

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

ketika IFS=:Baca -Rf1 f2 f3 f4 f5 f6 f7
melakukan
dibuang 'Pengguna$ f1menggunakan$f7shell dan menyimpan file di$f6direktori.'
selesai < /dll/paswd

Menggunakan loop while, ia akan membaca ketujuh bidang dan kemudian secara iteratif menampilkan konten file di terminal.
Simpan file di atas dengan nama 'readfile.sh'.

Sekarang, jalankan file di atas dengan menggunakan perintah berikut:

$pestareadfile.sh

Jelajahi file /etc/shadow

File /etc/shadow berisi semua kata sandi terenkripsi Anda yang disimpan dalam file ini yang hanya dapat dibaca oleh pengguna root.
Mari kita jalankan perintah berikut untuk menampilkan konten:

$sudo kucing /dll/bayangan

Anda dapat melihat semua kata sandi dalam format terenkripsi:

Kesimpulan

Kami telah melihat dari artikel di atas, semua detail akun dan kata sandi pengguna disimpan di file /etc/passwd di sistem Linux. Anda dapat membaca file ini, tetapi hanya pengguna root yang memiliki izin menulis. Selain itu, kami juga telah melihat semua kata sandi terenkripsi yang disimpan di file /etc/shadow. Anda juga dapat menjelajahi file /etc/group untuk mendapatkan detail tentang grup pengguna.