Dalam dunia manajemen sistem, khususnya untuk pengelolaan sistem back-end, Linux telah memainkan peran yang sentral.
Dukungannya diperkuat oleh beragam alat yang dirancang khusus, yang bahkan dapat dilihat dari fondasi dasarnya, kombinasi antara kernel Linux dan utilitas GNU.
Menguasai manajemen account user, termasuk cara lock unlock user account linux, adalah keterampilan wajib bagi admin Linux.
Dalam tutorial ini, kita akan mengeksplorasi beberapa cara untuk melakukan kedua operasi tersebut. Kabar baiknya, teknik-teknik ini bersifat universal dan dapat digunakan di hampir semua distro Linux.
Locking Password
Perhatikan bahwa kedua metode awal hanya mengunci kata sandi akun, bukan akses sepenuhnya. Jika user memiliki metode autentikasi lain (seperti kunci SSH), mereka tetap dapat masuk.
Untuk memblokir akses secara menyeluruh, lihat metode terakhir yang kami jelaskan.
1. usermod
Sebagai alat serba guna untuk mengelola account user, usermod menawarkan opsi -L yang khusus dirancang untuk lock password.
Cukup dengan menambahkan flag tersebut, perintah akan langsung menjalankan fungsinya. Berikut bentuk penulisannya:
sudo usermod -L username
sudo passwd –status username

Kebalikan dari proses penguncian, pembukaan kunci akun dilakukan menggunakan flag -U pada perintah yang sama. Berikut bentuk perintahnya:
sudo usermod -U username

2. passwd
Selain perintah sebelumnya, utilitas passwd juga menyediakan fungsi manajemen password, termasuk opsi khusus untuk lock account.
sudo passwd -l username

Kebalikan dari perintah passwd -l (lock), pembukaan kunci dilakukan dengan opsi -u (unlock). Sintaks lengkapnya adalah:
sudo passwd -u username

Untuk memverifikasi hasil eksekusi perintah, periksa file /etc/shadow. File sistem ini berisi data password terenkripsi dan terkait dengan username masing-masing account.
Jika kamu membandingkan entri di file /etc/shadow sebelum dan setelah proses penguncian, akan terlihat penambahan tanda seru (!) di depan passowrd terencryption. Tanda inilah yang mengindikasikan status terkunci pada account username.
Sebelum Lock Password :

Setelah Lock Password :

Check Status
Berikut perintah sederhana untuk memverifikasi apakah sebuah akun dalam keadaan terkunci atau tidak:
sudo passwd –status username

Dalam output yang dihasilkan, keberadaan karakter “L” setelah nama pengguna merupakan indikator bahwa akun tersebut sedang dalam status terkunci.
Locking Accounts
Penting untuk dipahami bahwa mengunci kata sandi seperti yang juga dijelaskan dalam dokumentasi resmi passwd dan usermod bukanlah cara yang efektif untuk mengunci akses seorang pengguna.
Kelemahan utamanya, metode ini tidak berlaku untuk autentikasi berbasis SSH Key.
Pendekatan yang lebih tepat dengan mengunci akun secara keseluruhan, salah satunya dengan menetapkan tanggal kedaluwarsa untuk akun tersebut.
1. usermod
Perintah usermod dapat dikatakan sebagai solusi terpadu untuk hampir semua kebutuhan konfigurasi akun pengguna.
Fungsinya mencakup kemampuan untuk mengunci kata sandi serta mengatur tanggal kedaluwarsa akun, guna menonaktifkan akses login secara menyeluruh.
sudo usermod –expiredate 1 username

Perintah ini akan langsung menonaktifkan akun pengguna.
2. chage
Utilitas chage berfungsi untuk mengatur parameter kedaluwarsa akun pengguna. Penetapan tanggal kedaluwarsa (-E) ke nilai 0 akan menyebabkan akun tersebut langsung dinonaktifkan.
sudo chage -E 0 username

Karena tujuan kita adalah menonaktifkan akun secara permanen, konfigurasi yang paling efektif adalah mengatur tanggal kedaluwarsanya. Untuk membuat akun tidak pernah kedaluwarsa, jalankan perintah berikut:
sudo chage -E -1 username

Sebagai alternatif, kamu juga dapat menetapkan tanggal kedaluwarsa yang spesifik dengan perintah berikut:
sudo chage -E YYYY-MM-FF username
Check Status
Status kedaluwarsa akun dapat diverifikasi menggunakan perintah chage. Berikut perintah untuk memeriksanya:
sudo chage -l username

Seperti halnya penguncian kata sandi, perubahan pada akun yang telah kedaluwarsa juga tercatat di file /etc/shadow.
Perbedaannya terletak pada field sebelum titik dua terakhir, di mana spasi kosong akan digantikan oleh angka “1” sebagai penanda status kedaluwarsa.
Keadaan normal:

Setelah akun Kedaluwarsa:

Konfigurasi manual memang memungkinkan, namun berisiko tinggi terhadap kesalahan. Oleh karena itu, sebaiknya gunakan perintah yang telah dijelaskan sebelumnya.
Replace shell
Saat pengguna melakukan login, sistem menggunakan apa yang disebut “login shell”. Meskipun jarang terlihat di lingkungan desktop modern, kamu dapat mengaksesnya dengan menekan CTRL+ALT+F1.
Kombinasi tombol ini akan membawa kamu ke antarmuka teks murni (TTY) yang memverifikasi identitas melalui login dan kata sandi sebelum mengizinkan akses perintah. Inilah hakikat dari login shell.
1. Mengganti shell menjadi nologin
Metode efektif untuk mengunci akun pengguna adalah dengan mengganti shell default mereka menjadi nologin, sehingga mencegah akses login sejak awal. Gunakan perintah berikut:
sudo usermod -s /sbin/nologin username

Konfigurasi ini akan menyebabkan sistem menampilkan pesan penolakan saat ada upaya login ke akun tersebut.
2. Mengubah shell menjadi false
Alternatif lain adalah mengubah shell pengguna menjadi /bin/false. Berbeda dengan nologin yang menampilkan pesan penolakan, opsi ini akan secara langsung memutus koneksi tanpa pesan apa pun setiap kali pengguna mencoba masuk.
Meskipun terkesan lebih keras, metode ini tetap memiliki manfaat dalam skenario tertentu.
sudo usermod -s /bin/false username

Reversal
Konfigurasi ini dapat dikembalikan dengan mengubah shell pengguna ke setting default. Untuk mengetahui shell default sistem, periksa berkas /etc/passwd dan bandingkan dengan akun pengguna lain. Shell Bash umumnya menjadi default di sebagian besar distribusi Linux. Berikut perintah untuk mengaturnya:
sudo usermod -s /bin/bash username

Perubahan shell pengguna dapat diverifikasi dengan memeriksa file /etc/passwd. Pada sistem default, shell biasanya ditetapkan sebagai /bin/bash.
Setelah melakukan modifikasi, entri dalam file tersebut akan menampilkan shell yang baru.

Perubahan shell dapat dilakukan secara manual melalui edit file /etc/passwd, namun pendekatan ini berisiko menyebabkan kesalahan konfigurasi. Sebaiknya gunakan perintah yang telah disediakan.

