Ada beberapa skema otentikasi yang dapat digunakan pada sistem Linux. Skema standar yang paling umum digunakan dan adalah untuk melakukan otentikasi terhadap file /etc/passwd dan /etc/shadow.

/etc/shadow adalah file teks yang berisi informasi tentang kata sandi pengguna sistem. File /etc/shadow dimiliki oleh root dan grup shadow, dan memiliki izin 640.

Format /etc/shadow

File /etc/shadow berisi satu entri per baris, masing-masing mewakili akun pengguna. Anda dapat melihat konten file, dengan teks editor atau perintah lain seperti perintah cat:

sudo cat /etc/shadow

Biasanya, baris pertama menggambarkan pengguna root, diikuti oleh sistem dan akun user normal. Entri baru ditambahkan di akhir file.

Setiap baris file /etc/shadow berisi sembilan bidang yang dipisahkan koma:

budi:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
|      |      |   |   |   |||+-----------> 9. Bidang ini diabaikan
|      |      |   |   |   ||+------------> 8. Tanggal habis tempo
|      |      |   |   |   |+-------------> 7. Periode tidak aktif
|      |      |   |   |   +--------------> 6. Periode peringatan
|      |      |   |   +------------------> 5. Usia Password Maksimum
|      |      |   +----------------------> 4. Usia Password Minimum
|      |      +--------------------------> 3. Terakhir ganti password
|      +---------------------------------> 2. Kata Sandi Terenkripsi
+----------------------------------------> 1. Username
  1. Username. String yang Anda ketikkan saat masuk ke sistem. atau akun user yang ada di sistem.
  2. Kata Sandi Terenkripsi. Kata sandi yang menggunakan format $type$salt$hashed. $type adalah metode algoritma hash kriptografi dan dapat memiliki nilai berikut:
    • $1$ – MD5
    • $2a$ – Blowfish
    • $2y$ – Eksblowfish
    • $5$ – SHA-256
    • $6$ – SHA-512

    Jika bidang kata sandi berisi tanda bintang (*) atau tanda seru (!), Pengguna tidak akan dapat masuk ke sistem menggunakan otentikasi kata sandi. Metode login lain seperti otentikasi berbasis kunci atau beralih ke user lain masih diizinkan.

    Dalam sistem Linux yang lebih lama, kata sandi yang dienkripsi pengguna disimpan di file /etc/passwd.

  3. Ganti Password terakhir. Ini adalah tanggal ketika kata sandi terakhir diubah. Banyaknya hari dihitung sejak 1 Januari 1970.
  4. Usia password minimum. Jumlah hari yang harus dilewati sebelum kata sandi pengguna dapat diubah. Biasanya diset ke nol, yang berarti tidak ada usia minimum untuk kata sandi.
  5. Usia password maksimum. Jumlah hari setelah kata sandi user harus diubah. Secara default, nomor ini diatur ke 99999.
  6. Periode peringatan. Jumlah hari sebelum kata sandi berakhir dimana pengguna diperingatkan bahwa kata sandi harus diubah.
  7. Periode tidak aktif. Jumlah hari setelah kata sandi pengguna berakhir sebelum akun pengguna dinonaktifkan. Biasanya bidang ini kosong.
  8. Tanggal habis tempo. Tanggal ketika akun dinonaktifkan. Ini direpresentasikan sebagai tanggal dlam format epoch date.
  9. Tidak digunakan atau diabaikan. Ini dicadangkan untuk penggunaan di masa depan.

File /etc/shadow tidak boleh diedit secara manual kecuali Anda tahu apa yang Anda lakukan. Selalu gunakan perintah yang dirancang untuk tujuan tersebut.

Misalnya, untuk mengubah kata sandi user, gunakan perintah passwd, dan untuk mengubah informasi seberapa lama usia kata sandi, gunakan perintah chage.

Contoh Entri dan Format /etc/shadow

Mari kita lihat contoh berikut:

linuxid: $6$zHvrHYa5Y690dseQ$z5zdL...:18009:0:120:7:14::

Entri di atas berisi informasi tentang kata sandi user “linuxid”:

  • Kata sandi dienkripsi dengan SHA-512 (kata sandi dipotong agar mudah di baca).
  • Kata sandi terakhir diubah pada 23 April 2019 – 18009.
  • Tidak ada usia kata sandi minimum (0).
  • Kata sandi harus diubah setidaknya setiap 120 hari.
  • Pengguna akan menerima pesan peringatan tujuh hari sebelum tanggal kedaluwarsa kata sandi.
  • Jika pengguna tidak mencoba login ke sistem 14 hari setelah kata sandi berakhir, akun akan dinonaktifkan.
  • Tidak ada tanggal kedaluwarsa akun.

Kesimpulan

File /etc/shadow menyimpan informasi tentang kata sandi pengguna yang dienkripsi, serta informasi terkait kata sandi lainnya..