MODUL 12 USER ACCOUNT MANAGEMENT (ADINUSA)

  

MODUL 12 ini menjelaskan mengenai materi yang cukup lengkap tentang manajemen akun pengguna di Linux, mencakup konsep dasar hingga praktik keamanan lanjutan seperti penggunaan /etc/shadow, password aging, restricted shell, dan SSH key-based authentication.

User Accounts

Linux memungkinkan beberapa pengguna dan proses bekerja secara bersamaan dalam satu sistem.

Tujuan Memiliki Akun Pengguna:

  • Memberikan ruang pribadi bagi setiap pengguna.
  • Membuat akun khusus untuk tugas tertentu.
  • Membedakan hak akses setiap pengguna.

Akun Root (Superuser):

Akun root memiliki akses penuh ke sistem. Karena berisiko tinggi, akun ini hanya boleh digunakan jika benar-benar diperlukan.

Akun Pengguna Biasa:

Akun ini digunakan untuk bekerja di sistem. Ada juga akun khusus (seperti akun daemon) yang memungkinkan proses berjalan tanpa menggunakan akun root.

Bab selanjutnya akan membahas manajemen grup, yang memungkinkan pengguna berbagi file dan hak akses sesuai kepentingan bersama.


Atribut of a User Account

Setiap pengguna di sistem Linux memiliki baris tersendiri dalam file /etc/passwd yang berisi informasi dasar tentang akun mereka.

Atribut-Atribut Akun Pengguna:

  • User Name → Nama unik yang diberikan kepada setiap pengguna.
  • User Password → Kata sandi yang digunakan untuk mengamankan akun.
  • User Identification Number (UID) → Angka unik yang digunakan untuk mengidentifikasi akun pengguna.
  • Group Identification Number (GID) → Menunjukkan grup utama atau default dari pengguna.
  • Comment atau GECOS Information → Biasanya berisi informasi tambahan seperti nama lengkap, email, atau nomor kontak.
  • Home Directory → Folder utama pengguna untuk menyimpan file pribadi, biasanya terletak di /home kecuali untuk root.
  • Login Shell → Program yang digunakan sebagai antarmuka utama pengguna, seperti terminal atau shell lainnya.

Atribut ini membantu sistem mengelola akun pengguna dengan lebih baik dan memastikan keamanan serta keteraturan dalam penggunaan sistem.


Creating User Accounts with useradd

Perintah useradd digunakan untuk membuat akun pengguna baru di sistem Linux. Secara default, perintah ini akan:

  • Memberikan User ID (UID) baru yang lebih besar dari nilai minimum yang ditetapkan.
  • Membuat grup utama dengan nama yang sama seperti pengguna dan memberikan Group ID (GID) yang sama dengan UID pengguna.
  • Membuat folder home di /home/nama_pengguna yang menjadi tempat penyimpanan file pribadi pengguna.
  • Menentukan shell login yang digunakan oleh pengguna.
  • Menyalin file konfigurasi awal dari /etc/skel ke folder home pengguna.
  • Menambahkan entri ke file /etc/shadow yang mengharuskan administrator menetapkan kata sandi sebelum akun dapat digunakan.

Administrator juga dapat menyesuaikan nilai default dengan menambahkan opsi tertentu dalam perintah useradd, seperti mengganti shell login atau menambahkan informasi pengguna.


Modifying and Deleting User Accounts

Administrator sistem dapat menghapus akun pengguna dengan perintah userdel. Saat perintah ini dijalankan, data pengguna akan dihapus dari file sistem seperti /etc/passwd, /etc/shadow, dan /etc/group. Namun, direktori home pengguna tidak akan dihapus kecuali menggunakan opsi tambahan.

Untuk mengubah informasi akun, digunakan perintah usermod. Dengan perintah ini, administrator dapat mengubah grup pengguna, direktori home, nama login, kata sandi, shell default, dan sebagainya.

Misalnya, untuk mengunci akun pengguna agar tidak bisa login, dapat digunakan opsi tertentu dalam perintah usermod. Perintah ini akan mencegah pengguna masuk tanpa menghapus akunnya.


Locked Accounts

Beberapa akun di Linux dalam keadaan terkunci secara default, seperti akun bin, daemon, atau sys. Akun ini masih dapat menjalankan program, tetapi tidak bisa login ke sistem karena tidak memiliki kata sandi yang valid.

Jika seorang pengguna dengan akun yang terkunci mencoba login, sistem akan menampilkan pesan bahwa akun tersebut tidak tersedia. Pesan ini juga dapat disimpan dalam file konfigurasi tertentu.

Administrator dapat mengunci akun pengguna tertentu agar tidak bisa login tanpa menghapus akun tersebut. Untuk membuka kembali akun yang dikunci, ada opsi yang bisa digunakan.

Selain itu, cara lain untuk mengunci akun adalah dengan mengatur tanggal kedaluwarsa akun ke tanggal yang sudah lewat, sehingga akun tidak bisa digunakan lagi.


User ID dan File /etc/passwd

File /etc/passwd menyimpan informasi akun pengguna di sistem Linux. Setiap baris dalam file ini berisi data pengguna yang dipisahkan oleh tanda titik dua (:), yang mencakup:

  • Username → Nama unik pengguna.
  • Password → Bisa berupa kata sandi yang di-hash atau hanya tanda "x" jika disimpan di file lain.
  • UID (User ID) → Nomor identifikasi pengguna.
  • GID (Group ID) → Nomor identifikasi grup utama pengguna.
  • Comment → Biasanya berisi nama lengkap pengguna.
  • Home → Direktori utama pengguna.
  • Shell → Program shell yang digunakan saat login.

Sebagian besar sistem Linux memberikan UID mulai dari 1000 untuk pengguna biasa, sedangkan angka di bawahnya digunakan untuk akun sistem. Jika UID tidak ditentukan saat membuat akun, sistem akan memberikan UID secara otomatis mulai dari nilai minimum yang telah ditentukan.

Setiap pengguna juga memiliki Primary Group ID, yang biasanya sama dengan UID-nya. Hal ini disebut User Private Groups (UPG).

Mengedit file /etc/passwd, /etc/group, atau /etc/shadow secara langsung tidak disarankan. Sebagai gantinya, gunakan perintah yang telah disediakan oleh sistem untuk mengelola akun pengguna.


Why Use /etc/shadow?

File /etc/shadow digunakan untuk menyimpan kata sandi pengguna dalam bentuk yang lebih aman. Beberapa alasan utama penggunaannya adalah:

  • Keamanan Lebih Baik → File ini menyimpan kata sandi dalam bentuk yang di-hash, sehingga lebih sulit diretas dibandingkan jika disimpan di /etc/passwd.
  • Menghindari Akses Tidak Sah → File /etc/passwd dapat dibaca oleh semua pengguna, sehingga jika kata sandi yang di-hash ada di dalamnya, hacker bisa menyalin dan mencoba menebaknya menggunakan alat khusus.
  • Hak Akses Lebih Ketat → File /etc/shadow hanya bisa dibaca oleh root, sehingga lebih sulit bagi orang lain untuk mendapatkan kata sandi yang di-hash.

Kesimpulannya, kecuali ada alasan khusus, selalu gunakan /etc/shadow untuk menyimpan kata sandi guna menjaga keamanan sistem.


More On /etc/shadow

File /etc/shadow menyimpan informasi terkait kata sandi pengguna dalam satu baris untuk setiap pengguna. Struktur datanya dipisahkan dengan tanda titik dua (:).

Berikut adalah bagian-bagian pentingnya:

  • username → Nama pengguna yang unik.
  • password → Kata sandi dalam bentuk hash SHA-512.
  • lastchange → Jumlah hari sejak 1 Januari 1970 saat kata sandi terakhir diubah.
  • mindays → Minimal hari sebelum kata sandi bisa diubah.
  • maxdays → Maksimal hari sebelum kata sandi harus diubah.
  • warn → Jumlah hari sebelum kata sandi kedaluwarsa, sistem akan memberikan peringatan.
  • grace → Jumlah hari setelah kata sandi kedaluwarsa sebelum akun dinonaktifkan.
  • expire → Tanggal akun akan dinonaktifkan.
  • reserved → Bagian yang disediakan untuk penggunaan mendatang.

Username di dalam /etc/shadow harus sesuai dengan yang ada di /etc/passwd.

Semua tanggal yang digunakan dalam file ini dihitung sebagai jumlah hari sejak 1 Januari 1970.

Untuk keamanan, hash kata sandi menggunakan format "$6$", yang menunjukkan penggunaan algoritma SHA-512, diikuti dengan nilai salt (pengacak) dan hasil hash sepanjang 88 karakter.


Manajemen Kata Sandi (Password Management)

Kata sandi di Linux dapat diubah menggunakan perintah passwd.

Pengguna Normal

  • Pengguna biasa hanya bisa mengubah kata sandinya sendiri.
  • Saat mengubah kata sandi, sistem akan meminta kata sandi lama terlebih dahulu.
  • Setelah itu, pengguna harus memasukkan kata sandi baru dua kali untuk konfirmasi.
  • Jika berhasil, sistem akan menampilkan pesan bahwa kata sandi telah diperbarui.

Pengguna Root

  • Root bisa mengubah kata sandi pengguna lain tanpa perlu mengetahui kata sandi lama mereka.
  • Root cukup memasukkan kata sandi baru dan mengonfirmasinya.
  • Sistem tetap akan menampilkan pesan bahwa kata sandi telah diperbarui jika proses berhasil.

Catatan Penting

  • Pengguna biasa tidak bisa menggunakan kata sandi yang terlalu pendek atau mudah ditebak.
  • Sistem menggunakan pam_cracklib.so untuk mencegah pemilihan kata sandi yang lemah.
  • Root tetap bisa mengatur kata sandi apa pun tanpa batasan.

Pengelolaan Usia Kata Sandi (Password Aging or Chage)

Pengelolaan usia kata sandi bertujuan untuk membatasi waktu penggunaan kata sandi agar tidak terlalu lama. Hal ini penting untuk meningkatkan keamanan akun, karena kata sandi yang sudah lama bisa lebih mudah diretas.

Fungsi chage

Perintah chage digunakan untuk mengatur masa berlaku kata sandi. Hanya pengguna root yang bisa menggunakannya.

Beberapa Pengaturan Umum

  • Melihat informasi usia kata sandi: Pengguna bisa mengecek kapan kata sandi terakhir diubah dan kapan akan kedaluwarsa.
  • Menentukan batas minimal dan maksimal perubahan kata sandi: Bisa mengatur jumlah hari minimal sebelum pengguna boleh mengubah kata sandi lagi, serta jumlah hari maksimal sebelum kata sandi harus diganti.
  • Menetapkan tanggal kedaluwarsa akun: Bisa menentukan tanggal kapan akun akan dinonaktifkan.
  • Memaksa pengguna untuk mengganti kata sandi saat login berikutnya: Berguna untuk memastikan pengguna selalu menggunakan kata sandi yang baru.

Catatan Penting

  • Pengguna biasa hanya bisa melihat informasi usia kata sandi, tetapi tidak bisa mengubahnya.
  • Jika pengaturan terlalu ketat, pengguna bisa merasa terganggu dan malah mencatat kata sandi di tempat yang tidak aman.


Restricted Shell (rbash)

Restricted Shell adalah mode terbatas dari shell di Linux yang membatasi akses pengguna untuk meningkatkan keamanan.

Fungsi Restricted Shell

Restricted Shell membatasi beberapa hal, seperti:

  • Mencegah pengguna berpindah direktori dengan perintah cd.
  • Melarang pengaturan variabel lingkungan seperti SHELL, ENV, atau PATH.
  • Tidak mengizinkan penggunaan perintah dengan / di dalamnya.
  • Membatasi pengalihan input dan output.

Penerapan

Restricted Shell bisa diaktifkan dengan membuat symlink dari /bin/bash menjadi /bin/rbash, lalu menggunakannya pada /etc/passwd.

Peringatan Keamanan

Meskipun terlihat membatasi, rbash tidak sepenuhnya aman karena masih ada cara untuk menghindari pembatasan tersebut. Untuk keamanan yang lebih baik, disarankan menggunakan metode lain seperti SELinux.


Restricted Accounts (Akun Terbatas)

Restricted Accounts adalah akun pengguna yang diberikan akses terbatas untuk meningkatkan keamanan. Akun ini memiliki beberapa pembatasan, seperti:

  • Menggunakan restricted shell.
  • Hanya dapat menjalankan program dan aplikasi tertentu.
  • Dibatasi dalam penggunaan sumber daya sistem.
  • Dibatasi dalam waktu dan lokasi akses.

Penerapan

Ketika restricted shell digunakan, sistem akan menjalankan file $HOME/.bash tanpa batasan. Oleh karena itu, pengguna tidak boleh memiliki izin menulis atau menjalankan file di direktori home-nya.

Selain itu, penting untuk tidak menambahkan direktori sistem ke dalam variabel PATH karena bisa memberi pengguna akses ke program lain yang memungkinkan mereka keluar dari restricted shell.

Konfigurasi

Restricted shell bisa digunakan dengan /bin/rbash sebagai shell di file /etc/passwd. Ini memastikan bahwa pengguna hanya memiliki akses terbatas dan tidak dapat menjalankan perintah yang tidak diizinkan.

Akun dengan akses terbatas ini juga disebut sebagai limited accounts.


The Root Account (Akun Root)

Akun root adalah akun dengan akses tertinggi di sistem Linux dan hanya boleh digunakan untuk keperluan administrasi saat benar-benar diperlukan. Jika terjadi kesalahan saat menggunakan akun ini, akibatnya bisa sangat fatal bagi keamanan dan kestabilan sistem.

Keamanan Akses Root

Secara default, login root melalui jaringan tidak diperbolehkan demi alasan keamanan. Namun, login root bisa diizinkan melalui SSH yang dikonfigurasi di /etc/ssh/sshd_config, serta melalui PAM (Pluggable Authentication Modules) dengan modul pam_securetty.so dan file /etc/securetty. Ini memastikan bahwa login root hanya bisa dilakukan dari perangkat yang telah diizinkan.

Rekomendasi Penggunaan

Disarankan agar akses root dilakukan melalui su atau sudo agar semua aktivitas root dapat tercatat dengan baik. Beberapa distribusi Linux, seperti Ubuntu, bahkan secara default tidak mengizinkan login langsung ke akun root.

Untuk meningkatkan keamanan, PAM dapat digunakan untuk membatasi pengguna yang bisa menjalankan su ke root. Selain itu, auditd bisa dikonfigurasi untuk mencatat semua perintah yang dieksekusi oleh akun root.


SSH (Secure Shell)

SSH adalah protokol yang digunakan untuk mengakses komputer lain melalui jaringan secara aman. Dengan SSH, kita bisa masuk ke sistem lain dan menjalankan perintah atau mentransfer file tanpa khawatir data disadap.

Menggunakan SSH untuk Login

Untuk masuk ke komputer lain melalui SSH, kita bisa mengetikkan perintah:

ssh nama_pengguna@alamat_komputer

Contoh:

ssh student@farflung.com

Kemudian masukkan password pengguna tersebut. Jika ingin masuk sebagai root, gunakan:

ssh root@farflung.com

Mengirim File dengan SCP

SCP (Secure Copy) digunakan untuk mengirim file antar komputer melalui SSH.
Contoh perintah:

  • Mengirim file ke komputer lain:
    scp file.txt user@server:/direktori/tujuan
  • Mengirim folder secara rekursif:
    scp -r folder user@server:/direktori/tujuan

Menjalankan Perintah di Banyak Komputer Sekaligus

Kita bisa menjalankan perintah di beberapa komputer sekaligus dengan menggunakan perulangan.
Contoh:

for machines in node1 node2 node3; do (ssh $machines perintah_yang_ingin_dijalankan &); done

Ini berguna untuk melakukan tugas yang sama di banyak server sekaligus.

Autentikasi SSH dengan Kunci (SSH Key-Based Authentication)

SSH bisa dikonfigurasi agar tidak perlu memasukkan password setiap kali login. Caranya adalah dengan menggunakan kunci SSH, yang terdiri dari kunci privat dan kunci publik.

Membuat Kunci SSH

Untuk membuat pasangan kunci SSH, gunakan perintah:
ssh-keygen
Proses ini akan menghasilkan dua file:

  • id_rsa (kunci privat)
  • id_rsa.pub (kunci publik)

Kunci privat harus dijaga keamanannya dan tidak boleh dibagikan. Kunci publik bisa diberikan ke server yang ingin kita akses.

Menyimpan Kunci Publik ke Server

Agar server mengenali kunci SSH kita, kita harus mengirimkan kunci publik ke server tujuan menggunakan perintah:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

Setelah proses ini selesai, kita bisa masuk ke server tanpa perlu memasukkan password lagi.

Dengan menggunakan metode autentikasi berbasis kunci SSH, login ke server menjadi lebih aman dan praktis tanpa harus memasukkan password setiap kali.



GROUPS

Di sistem Linux, group adalah sekumpulan pengguna yang memiliki tujuan atau akses yang sama. Group ini digunakan untuk berbagi file, direktori, dan hak akses tertentu dalam sistem.

Setiap user di Linux bisa tergabung dalam satu atau lebih group. Informasi mengenai group disimpan dalam file /etc/group, mirip seperti file /etc/passwd yang menyimpan informasi user.

Format data dalam /etc/group adalah sebagai berikut:
nama_group:password:GID:user1,user2,...

Keterangan:

  • nama_group → Nama dari group.
  • password → Biasanya kosong, hanya digunakan jika file /etc/gshadow ada.
  • GID (Group ID) → Identitas unik dari group.
  • user1,user2,... → Daftar user yang menjadi anggota group tersebut.

Mengelola Group di Linux

Terdapat beberapa perintah utama untuk mengelola group:

  • groupadd → Membuat group baru.
  • groupmod → Mengubah informasi group, termasuk menambah user.
  • groupdel → Menghapus group.
  • usermod → Mengelola keanggotaan user dalam group.

Contoh penggunaan:

  • Menambahkan group baru dengan ID tertentu.
  • Mengubah ID dari group yang sudah ada.
  • Menghapus group yang tidak digunakan.
  • Menambahkan user ke beberapa group sekaligus.

Penting:
Gunakan perintah usermod -G dengan hati-hati karena akan mengganti seluruh daftar group user tersebut. Jika ingin menambah tanpa menghapus group sebelumnya, gunakan opsi -a (append).


User Private Groups (UPG) dalam Linux

User Private Groups (UPG) adalah sistem dalam Linux yang membuat setiap user memiliki grupnya sendiri.

Namun, UPG tidak dijamin bersifat privat karena user lain masih bisa ditambahkan ke dalam grup tersebut. Informasi tentang UPG disimpan di file /etc/group.

Secara default, ketika akun user dibuat menggunakan useradd, maka:

  • GID (Group ID) sama dengan UID (User ID).
  • Nama grup juga sama dengan nama user.

Pengaturan Umask dalam UPG

  • Dalam file /etc/profile, umask diatur ke 002 untuk user yang dibuat dengan UPG.
  • Dengan pengaturan ini, file yang dibuat user akan memiliki izin 664 (rw-rw-r--), dan direktori memiliki izin 775 (rwxrwxr-x).
  • Ini memungkinkan anggota grup memiliki akses menulis ke file dan folder, sementara pengguna lain hanya bisa membaca.

Konsep ini berguna untuk kerja sama tim, karena file yang dibuat oleh satu user dalam grup bisa diedit oleh anggota grup lain tanpa perlu mengubah izin secara manual.


Keanggotaan Grup (Group Membership) dalam Linux

Dalam Linux, setiap user memiliki satu grup utama (primary group). Informasi tentang grup utama ini tersimpan di file /etc/passwd dan /etc/group.

Selain grup utama, seorang user juga bisa menjadi anggota 0 hingga 15 grup sekunder (secondary groups). Grup sekunder memberikan izin tambahan kepada user dalam sistem.

Perbedaan Grup di CentOS dan Ubuntu

  • Pada sistem CentOS, user biasanya hanya tergabung dalam grup utamanya saja.
  • Pada sistem Ubuntu, user bisa menjadi anggota beberapa grup sekunder yang memiliki fungsi tertentu, misalnya sudo untuk hak akses administratif.

Keanggotaan grup ini sangat penting untuk mengatur izin akses file dan direktori, sehingga sistem tetap aman dan terorganisir.

.

Komentar

Postingan populer dari blog ini

Cara Instalasi Debian 12 di Virtualbox

Cara Instalasi dan Konfigurasi Web Server pada Debian 10 di VirtualBox

Cara Instalasi Debian 12 Di Virtualbox Dan Cara Untuk Setting IP Address-Nya