Jenis kata sandi terburuk bukanlah kata sandi yang lemah tetapi tidak ada kata sandi sama sekali. Sebagai admin sistem, Anda harus memastikan bahwa setiap akun pengguna memiliki kata sandi yang kuat. Tutorial singkat ini menjelaskan cara menemukan akun pengguna dengan kata sandi kosong di Linux.
Sebelum masuk ke topik, mari kita rekap singkat bayangan file dan tujuannya.
Apa itu File Sandi Bayangan?
Dalam sistem RHEL, kata sandi pengguna di-hash dan disimpan dalam file aman bernama /etc/shadow
. File sandi bayangan berisi autentikasi pengguna dan detail penuaan sandi dari akun pengguna.
File sandi bayangan dimiliki oleh root
pengguna dan hanya dapat dibaca oleh pengguna super. Anda dapat memverifikasi kepemilikan dan izin file bayangan menggunakan perintah berikut:
# ls -l /etc/shadow ---------- 1 root root 618 Apr 7 07:52 /etc/shadow
Struktur khas dari contoh baris dari file bayangan diberikan di bawah ini.
user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::
Seperti yang mungkin sudah Anda ketahui, file bayangan memiliki sembilan bidang dipisahkan oleh titik dua.
Mari kita lihat sekilas setiap bidang.
- Diarsipkan 1 (Nama login) - Ini berisi nama Login (pengguna1) seperti yang muncul di
passwd
berkas. - Diarsipkan 2 (Kata sandi terenkripsi) - File ini berisi kata sandi pengguna yang di-hash (terenkripsi). Jika ada tanda seru tunggal (!) di awal file ini, berarti akun pengguna terkunci. Jika bidang ini kosong, pengguna tidak memiliki kata sandi.
- Mengajukan 3 (Perubahan terakhir) - Bidang ini menunjukkan jumlah hari sejak zaman Unix (yaitu waktu Unix - 01 Januari 1970 00:00:00 UTC) saat kata sandi terakhir diubah. Jika bidang ini berisi 0, pengguna dipaksa untuk mengubah kata sandi mereka pada login berikutnya.
- Diajukan 4 (Minimum) - Bidang ini menunjukkan jumlah hari (mindays) minimum yang harus dilalui sebelum pengguna diizinkan untuk mengubah kata sandinya. Anda dapat mengubah nilai yang diajukan ini dengan
chage
perintah dengan-m
pilihan. - Bidang 5 (Maksimum) - Menunjukkan jumlah hari maksimum (maxdays) validitas kata sandi sebelum kata sandi pengguna kedaluwarsa. Jika yang diajukan adalah 0, itu berarti fitur ini dinonaktifkan. Nilai bidang ini dapat diubah dengan
chage
perintah dengan-M
pilihan. - Diajukan 6 (Peringatan) - Menunjukkan jumlah hari (peringatan) di mana pengguna mendapat peringatan untuk mengubah kata sandi mereka sebelum kedaluwarsa. Anda dapat mengubah nilai ini dengan
chage
perintah dengan-W
opsi ataupasswd
perintah dengan-w
pilihan. - Bidang 7 (Kata Sandi Kedaluwarsa) - Menentukan jumlah hari maksimum yang diizinkan bagi pengguna untuk dapat masuk dengan kata sandi yang kedaluwarsa. Ini dapat diubah menggunakan
chage
perintah dengan-I
tandai ataupasswd
perintah dengan-i
bendera. - Bidang 8 (Kedaluwarsa Akun) - Menentukan jumlah hari sejak waktu UNIX ketika akun pengguna akan kedaluwarsa dan tidak lagi tersedia. Anda dapat mengubah nilai bidang ini menggunakan
chage
perintah dengan-E
pilihan. - Bidang 9 (Dipesan) - Bidang ini dicadangkan untuk penggunaan di masa mendatang.
Yang disebutkan di atas, kata sandi terenkripsi disimpan di bidang kedua dari setiap entri dalam file kata sandi bayangan, tepat setelah nama pengguna.
Jadi, jika kolom kedua di file bayangan kosong, maka pengguna tidak memiliki kata sandi. Izinkan saya menunjukkan contoh untuk menemukan semua akun pengguna tanpa kata sandi.
Temukan Semua Akun Pengguna Tanpa Kata Sandi Di Linux
Untuk mendeteksi semua akun pengguna lokal yang tidak memiliki kata sandi, cukup jalankan perintah berikut sebagai root
pengguna:
# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow
Contoh keluaran:
ostechnix has empty password!. Please set a strong password ASAP!!
Anda juga dapat menggunakan getent
perintah dikombinasikan dengan grep
dan cut
perintah untuk mengidentifikasi akun pengguna lokal tanpa kata sandi di Linux.
# getent shadow | grep -Po '^[^:]*(?=::)'
Atau,
# getent shadow | grep '^[^:]*::' | cut -d: -f1
Semua perintah di atas hanya akan mencantumkan akun pengguna lokal yang memiliki kata sandi kosong. Jika Anda ingin membuat daftar akun sistem dan akun pengguna dengan kata sandi kosong, jalankan.
# getent shadow | grep -Po '^[^:]*(?=:.?:)'
Atau,
# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Temukan Akun Pengguna Tanpa Kata Sandi Tertentu
Perintah di atas akan mencantumkan semua akun lokal dan sistem yang tidak memiliki kata sandi. Anda juga dapat memeriksa status sandi akun pengguna tertentu menggunakan passwd
perintah dengan -S
bendera.
# passwd -S ostechnix
Contoh keluaran:
ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)
passwd
perintah akan menunjukkan status kata sandi dari akun pengguna yang diberikan. Nilai yang mungkin adalah:
- LK - Akun pengguna terkunci.
- NP - Akun pengguna tidak memiliki kata sandi.
- PS - Akun pengguna memiliki kata sandi yang dapat digunakan.
Perhatian: Dalam sistem berbasis Debian, status kata sandi akan dilambangkan sebagai L , N , P masing-masing.
Menetapkan Kata Sandi Pengguna Di Linux
Anda dapat masuk sebagai pengguna tanpa kata sandi, itu baik-baik saja. Namun tidak disarankan! Anda harus menetapkan sandi yang kuat dengan minimal 8 karakter termasuk huruf besar, huruf kecil, karakter khusus, dan angka.
Untuk mengatur kata sandi ke akun pengguna di Linux, gunakan passwd
perintah sebagai root
pengguna seperti di bawah ini.
Sebagai pengguna root:
# passwd ostechnix
Ganti ostechnix dengan nama pengguna Anda sendiri.
Sekarang periksa status kata sandi akun pengguna menggunakan passwd
perintah:
# passwd -S ostechnix
Contoh keluaran:
ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)
Kunci Akun Pengguna Di Linux
Terkadang, Anda hanya ingin mengunci akun pengguna dengan kata sandi kosong. Jika demikian, pertama-tama temukan pengguna dengan kata sandi kosong seperti dijelaskan di atas dan kunci mereka menggunakan passwd
perintah dengan -l
tandai sebagai root
pengguna seperti di bawah ini.
# passwd -l ostechnix
Contoh keluaran:
Locking password for user ostechnix. passwd: Success
Sekarang, periksa status akun pengguna:
# passwd -S ostechnix
Contoh Keluaran:
ostechnix LK 2022-04-07 0 99999 7 -1 (Password locked.)
Lihat? Pengguna telah dikunci. Dia tidak bisa masuk ke sistem lagi.
Anda juga dapat menggunakan usermod
perintah dengan -L
(huruf besar L) bendera untuk mengunci pengguna.
# usermod -L ostechnix
Buka Kunci Akun Pengguna Di Linux
Untuk membuka kunci pengguna tanpa kata sandi di Linux, gunakan passwd
perintah atau usermod
perintah dengan -p
sebagai root
pengguna.
# passwd ostechnix
Masukkan kata sandi dua kali untuk membuka kunci kata sandi.
Membuka kunci pengguna dengan kata sandi kosong dengan usermod
perintah tidak mungkin, Anda harus mengatur kata sandi dengan usermod -p
untuk membuka kunci sandi pengguna.
# usermod -p <password-here> ostechnix
Kesimpulan
Dalam tutorial ini, kami menjelaskan apa itu file sandi Shadow dan tujuan dari file ini di Linux. Kemudian kami membahas tentang berbagai perintah untuk menemukan semua akun pengguna yang tidak memiliki kata sandi di Linux. Terakhir, kami mempelajari cara menyetel sandi untuk pengguna dan juga cara mengunci dan membuka kunci pengguna di Linux.