Manajemen Pengguna
1. Pengenalan
Manajemen pengguna di Linux sangat penting untuk mengontrol akses, hak istimewa, dan keamanan sistem. Linux menggunakan file sistem tertentu untuk menyimpan informasi pengguna, seperti /etc/passwd
, /etc/shadow
, dan /etc/group
.
2. Jenis Pengguna di Linux
2.1. Pengguna Root
Root adalah pengguna dengan hak istimewa tertinggi di sistem Linux, dapat melakukan apa saja termasuk mengedit file sistem, menginstal perangkat lunak, dan mengubah konfigurasi sistem.
2.2. Pengguna Biasa
Pengguna biasa memiliki hak terbatas dan hanya dapat mengakses file serta menjalankan perintah yang diizinkan oleh administrator.
2.3. Pengguna Sistem
Pengguna sistem adalah akun yang dibuat secara otomatis oleh sistem untuk menjalankan layanan tertentu, seperti www-data
untuk server web atau mysql
untuk database.
3. Menambahkan Pengguna
adduser
adduser
adalah perintah yang lebih interaktif dan user-friendly untuk menambahkan pengguna.
sudo adduser nama_pengguna
Perintah ini akan meminta informasi tambahan seperti password, nama lengkap, dan informasi lainnya.
useradd
useradd
adalah perintah yang lebih minimalis dan tidak secara otomatis membuat direktori home pengguna kecuali dengan opsi -m
.
sudo useradd -m nama_pengguna
Opsi tambahan pada useradd
:
-m
: Membuat direktori home pengguna.-d /path/home
: Menentukan direktori home pengguna.-s /bin/bash
: Menentukan shell default pengguna.-u UID
: Menentukan UID khusus untuk pengguna.-g GID
: Menentukan grup utama pengguna.-G grup1,grup2
: Menambahkan pengguna ke beberapa grup.
Untuk mengatur password setelahnya:
sudo passwd nama_pengguna
4. UID dan GID
-
UID (User ID):
- 0 : Root (superuser)
- 1-999 : Pengguna sistem
- 1000 ke atas : Pengguna biasa
-
GID (Group ID):
- Mirip dengan UID, tetapi untuk grup.
- Grup root memiliki GID 0, sementara grup pengguna sistem biasanya memiliki GID di bawah 1000.
5. Menghapus Pengguna
deluser
Untuk menghapus pengguna dan direktori home-nya:
sudo deluser --remove-home nama_pengguna
userdel
Untuk menghapus pengguna tanpa menghapus direktori home:
sudo userdel nama_pengguna
Jika ingin menghapus pengguna beserta direktori home:
sudo userdel -r nama_pengguna
6. Mengubah Password
Mengubah password pengguna:
sudo passwd nama_pengguna
Untuk mengunci akun pengguna:
sudo passwd -l nama_pengguna
Untuk membuka kembali akun yang terkunci:
sudo passwd -u nama_pengguna
7. Manajemen Grup
Setiap pengguna di Linux terkait dengan satu atau lebih grup.
Menambahkan Grup
sudo groupadd nama_grup
Menambahkan Pengguna ke Grup
sudo usermod -aG nama_grup nama_pengguna
Menghapus Pengguna dari Grup
sudo gpasswd -d nama_pengguna nama_grup
Menghapus Grup
sudo groupdel nama_grup
8. File Konfigurasi Terkait Pengguna
/etc/passwd
File ini menyimpan informasi dasar pengguna. Format umum:
nama_pengguna:x:UID:GID:deskripsi:direktori_home:shell
x
menunjukkan bahwa password disimpan di/etc/shadow
UID
adalah User IDGID
adalah Group IDdeskripsi
adalah informasi pengguna (opsional)direktori_home
adalah lokasi home penggunashell
adalah shell default pengguna
/etc/shadow
File ini menyimpan password pengguna dalam bentuk terenkripsi. Format umum:
nama_pengguna:hashed_password:last_change:min:max:warn:inactive:expire
hashed_password
: Password yang telah dienkripsilast_change
: Hari terakhir password diubahmin
: Minimal hari sebelum password bisa diubahmax
: Maksimal hari sebelum password harus diubahwarn
: Hari sebelum peringatan perubahan password diberikaninactive
: Hari setelah masa tenggang berakhir sebelum akun dinonaktifkanexpire
: Hari akun akan kedaluwarsa
/etc/group
File ini menyimpan informasi grup. Format umum:
nama_grup:x:GID:anggota1,anggota2
x
menunjukkan bahwa password grup tidak digunakanGID
adalah Group IDanggota1, anggota2
adalah pengguna dalam grup
9. Grup Umum di Linux
- root (GID 0) : Grup superuser.
- adm : Memiliki akses ke log sistem.
- sudo : Grup untuk pengguna yang dapat menjalankan perintah sebagai root.
- www-data : Digunakan oleh server web seperti Apache dan Nginx.
- nogroup : Grup default untuk proses yang tidak memiliki grup khusus.
- users : Grup umum untuk pengguna biasa.
10. sudoers
Pengertian sudoers
File /etc/sudoers
adalah file konfigurasi yang mengontrol hak akses pengguna dalam menggunakan perintah sudo
. File ini menentukan siapa yang bisa menjalankan perintah sebagai pengguna lain, termasuk root.
Mengedit File sudoers dengan Aman
Untuk mengedit file sudoers, gunakan perintah berikut agar tidak merusak syntax:
sudo visudo
visudo
memastikan bahwa tidak ada kesalahan sintaks yang dapat mengunci akses ke sudo.
Memberikan Akses sudo ke Pengguna
Untuk memberikan akses sudo ke pengguna tertentu, tambahkan baris berikut dalam file /etc/sudoers
:
username ALL=(ALL) ALL
Penjelasan:
username
= Nama pengguna yang diberi akses sudo.ALL
= Bisa menjalankan perintah dari semua terminal.(ALL)
= Bisa menjalankan perintah sebagai pengguna lain (termasuk root).ALL
= Bisa menjalankan semua perintah.
Menjalankan Perintah Tanpa Password
Agar pengguna bisa menjalankan perintah sudo tanpa memasukkan password:
username ALL=(ALL) NOPASSWD: ALL
Atau untuk perintah tertentu saja:
username ALL=(ALL) NOPASSWD: /path/to/command
Memberikan Hak Akses sudo ke Grup
Untuk memberikan akses sudo ke seluruh anggota grup tertentu:
%groupname ALL=(ALL) ALL
Contoh untuk grup developers
:
%developers ALL=(ALL) ALL
Membatasi Penggunaan sudo untuk Perintah Tertentu
Untuk membatasi pengguna agar hanya bisa menjalankan perintah tertentu:
username ALL=(ALL) /usr/bin/systemctl, /usr/bin/reboot
Pengguna hanya dapat menjalankan systemctl
dan reboot
dengan sudo.
Blokir Akses sudo ke Perintah Tertentu
Untuk melarang pengguna menjalankan perintah tertentu dengan sudo:
username ALL=(ALL) ALL, !/usr/bin/passwd, !/usr/bin/su
Pengguna bisa menjalankan semua perintah kecuali passwd
dan su
.
Memeriksa Konfigurasi sudoers
Setelah mengedit sudoers, pastikan tidak ada kesalahan dengan perintah:
sudo visudo -c
Jika ada kesalahan sintaks, perbaiki sebelum menyimpan perubahan.
11. Mengecek Informasi Pengguna
Mengecek Pengguna Saat Ini
echo $USER
Mengecek Detail Pengguna
id nama_pengguna
Mengecek Grup Pengguna
groups nama_pengguna
Melihat Informasi dalam /etc/passwd
getent passwd nama_pengguna
Melihat Informasi dalam /etc/group
getent group nama_grup
12. Menonaktifkan dan Menghapus Akun
Untuk menonaktifkan akun tanpa menghapusnya:
sudo usermod -L nama_pengguna
Untuk menghapus akun dan semua datanya:
sudo userdel -r nama_pengguna
13. Manajemen Waktu dan Keamanan Pengguna
Mengecek Masa Berlaku Akun Pengguna
Untuk melihat informasi kedaluwarsa akun pengguna:
sudo chage -l username
Mengatur Tanggal Kedaluwarsa Akun
Untuk mengatur akun agar kedaluwarsa pada tanggal tertentu:
sudo chage -E YYYY-MM-DD username
Contoh:
sudo chage -E 2025-12-31 user1
Akun user1
akan dinonaktifkan pada 31 Desember 2025.
Memaksa Pengguna Mengubah Password Secara Berkala
Mengatur agar pengguna harus mengganti password setiap 30 hari:
sudo chage -M 30 username
Menentukan Minimal Hari Sebelum Password Bisa Diganti
Untuk mencegah pengguna mengganti password terlalu cepat:
sudo chage -m 5 username
Pengguna hanya bisa mengganti password minimal 5 hari setelah perubahan terakhir.
Mengatur Masa Tenggang Setelah Kedaluwarsa
Untuk memberikan masa tenggang setelah password kedaluwarsa:
sudo chage -I 7 username
Pengguna memiliki 7 hari setelah kedaluwarsa sebelum akun dikunci.
Memaksa Pengguna Mengubah Password Saat Login Berikutnya
sudo passwd -e username
Setelah login, pengguna akan diminta untuk membuat password baru.
Mengatur Kompleksitas Password
Untuk memastikan password memenuhi standar keamanan:
- Edit file
/etc/security/pwquality.conf
dan sesuaikan parameter berikut:minlen=8 # Minimal 8 karakter
dcredit=-1 # Harus ada minimal 1 angka
ucredit=-1 # Harus ada minimal 1 huruf besar
lcredit=-1 # Harus ada minimal 1 huruf kecil
ocredit=-1 # Harus ada minimal 1 karakter spesial - Simpan perubahan dan pastikan PAM menggunakan aturan ini dengan mengedit
/etc/pam.d/common-password
:password requisite pam_pwquality.so retry=3
Mengunci dan Membuka Kunci Akun
- Mengunci akun pengguna:
sudo passwd -l username
- Membuka kunci akun pengguna:
sudo passwd -u username
14. Kesimpulan
Manajemen pengguna di Linux melibatkan berbagai perintah dan file sistem. Memahami konsep ini sangat penting untuk mengelola hak akses dan menjaga keamanan sistem.