01

Hak Akses User pada Linux

Linux merupakan sistem operasi berbasis multi-pengguna (multi-user) yang dirancang dengan mekanisme keamanan berlapis. Salah satu fondasi utama keamanan tersebut adalah sistem hak akses file (file permissions), yang mengatur siapa saja yang dapat membaca, menulis, atau mengeksekusi suatu file maupun direktori.

Pemahaman terhadap sistem ini merupakan keterampilan esensial bagi setiap pengguna maupun administrator Linux, karena konfigurasi yang tidak tepat dapat berpotensi menimbulkan celah keamanan yang serius.

Tipe Izin File

Terdapat tiga jenis izin dasar yang berlaku untuk setiap file dan direktori dalam sistem Linux:

Simbol Nilai Oktal Nama Fungsi pada File Fungsi pada Direktori
r 4 Read (Baca) Membaca isi file Melihat daftar isi direktori
w 2 Write (Tulis) Memodifikasi atau menghapus file Membuat, menghapus, mengganti nama file di dalamnya
x 1 Execute (Eksekusi) Menjalankan file sebagai program Masuk ke dalam direktori (cd)
- 0 None (Tidak ada) Izin tidak diberikan

Kategori Pengguna

Setiap set izin pada Linux diterapkan terhadap tiga kategori pengguna secara berbeda:

Kategori Simbol Keterangan
Owner (Pemilik) u Pengguna yang memiliki file tersebut — biasanya yang menciptakannya.
Group (Grup) g Grup yang diasosiasikan dengan file. Semua anggota grup mendapat izin yang sama.
Others (Lainnya) o Semua pengguna lain yang tidak termasuk owner maupun group.
All (Semua) a Pintasan untuk menerapkan izin ke ketiga kategori sekaligus (u+g+o).

Membaca Notasi Izin

Perintah ls -l menampilkan izin file dalam format string sepanjang 10 karakter. Berikut adalah cara membacanya:

-rwxr-xr--
T rwx r-x r--
Tipe file (- = file biasa, d = direktori) Owner: rwx Group: r-x Others: r--
Terminal — Contoh output ls -l
$ ls -l
-rwxr-xr--  1  budi  developer  4096  Jan 10  script.sh
drwxr-x---  2  budi  developer  4096  Jan 10  project/
-rw-r--r--  1  root  root       2048  Jan 10  config.txt

Representasi Numerik (Oktal)

Selain notasi simbolik, izin file dapat direpresentasikan dengan sistem bilangan oktal (basis 8). Nilai setiap izin dijumlahkan untuk mendapatkan satu digit per kategori pengguna:

Notasi Simbolik Nilai Oktal Keterangan
rwx74+2+1 — Baca, tulis, eksekusi
rw-64+2+0 — Baca dan tulis
r-x54+0+1 — Baca dan eksekusi
r--44+0+0 — Hanya baca
---00+0+0 — Tidak ada izin
💡 Contoh Praktis
Nilai 755 berarti Owner mendapat rwx (7), Group mendapat r-x (5), dan Others mendapat r-x (5). Konfigurasi ini umum digunakan untuk file skrip atau direktori web server.

02

Cara Menambahkan User pada Linux

Pengelolaan akun pengguna merupakan tugas rutin seorang administrator sistem. Linux menyediakan beberapa perintah untuk membuat, mengonfigurasi, dan menghapus akun pengguna. Seluruh operasi penambahan pengguna memerlukan hak akses root atau penggunaan perintah sudo.

Perintah useradd

Perintah useradd adalah utilitas tingkat rendah (low-level utility) untuk membuat akun pengguna baru. Perintah ini memberikan kontrol penuh atas setiap parameter akun.

Terminal — Sintaks useradd
# Sintaks dasar
sudo useradd [opsi] nama_user

# Membuat user dengan direktori home
sudo useradd -m budi

# Membuat user lengkap (home dir, shell, komentar)
sudo useradd -m -s /bin/bash -c "Budi Santoso" budi

# Membuat user dengan grup tertentu
sudo useradd -m -g developer -G sudo,www-data budi
OpsiKeterangan
-mBuat direktori home secara otomatis (/home/nama_user)
-s /bin/bashTetapkan shell default untuk user
-c "Keterangan"Tambahkan komentar / nama lengkap pengguna
-g nama_grupTetapkan grup utama (primary group)
-G grup1,grup2Tambahkan ke grup-grup tambahan (supplementary groups)
-e YYYY-MM-DDTetapkan tanggal kedaluwarsa akun
-u UIDTentukan User ID secara manual

Perintah adduser

Perintah adduser merupakan antarmuka yang lebih ramah pengguna (high-level) dan bersifat interaktif. Perintah ini secara otomatis membuat direktori home, menyalin file konfigurasi default, dan meminta password secara langsung.

Terminal — Menggunakan adduser (interaktif)
sudo adduser budi

Adding user `budi` ...
Adding new group `budi` (1001) ...
Adding new user `budi` (1001) with group `budi` ...
Creating home directory `/home/budi` ...
Copying files from `/etc/skel` ...
New password: ●●●●●●●●
Retype new password: ●●●●●●●●
passwd: password updated successfully
Enter the new value, or press ENTER for the default
    Full Name []: Budi Santoso
Is the information correct? [Y/n] Y
📌 Catatan Penting
Pada distribusi berbasis Debian/Ubuntu, adduser direkomendasikan untuk penggunaan interaktif karena lebih mudah dan aman. Sementara useradd lebih cocok digunakan dalam skrip otomasi (shell script).

Mengelola Password

Setelah akun dibuat, password dapat ditetapkan atau diubah menggunakan perintah passwd:

Terminal — Manajemen password
# Menetapkan password untuk user tertentu (oleh root)
sudo passwd budi

# Mengubah password sendiri (tanpa sudo)
passwd

# Mengunci akun user (nonaktifkan login)
sudo passwd -l budi

# Membuka kunci akun user
sudo passwd -u budi

# Memaksa user ganti password saat login berikutnya
sudo passwd -e budi

Menambahkan User ke Grup

Keanggotaan grup menentukan izin kolektif yang dimiliki pengguna. Perintah usermod digunakan untuk memodifikasi konfigurasi akun yang sudah ada:

Terminal — Manajemen grup user
# Menambahkan user ke grup tambahan (-aG = append to Group)
sudo usermod -aG sudo budi

# Menambahkan user ke beberapa grup sekaligus
sudo usermod -aG sudo,docker,www-data budi

# Melihat grup yang diikuti user
groups budi
budi : budi sudo docker www-data

# Melihat informasi user secara detail
id budi
uid=1001(budi) gid=1001(budi) groups=1001(budi),27(sudo),999(docker)
⚠ Perhatian
Selalu gunakan opsi -a (append) bersama -G saat menambahkan grup dengan usermod. Tanpa opsi -a, perintah akan menggantikan semua keanggotaan grup yang ada, bukan menambahkan.

03

Cara Mengubah Hak Akses dan Kepemilikan

Linux menyediakan tiga perintah utama untuk mengelola izin dan kepemilikan file: chmod untuk mengubah izin akses, chown untuk mengubah pemilik file, dan chgrp untuk mengubah grup file. Ketiga perintah ini merupakan alat fundamental dalam administrasi keamanan sistem.

chmod — Mengubah Izin Akses

Perintah chmod (change mode) digunakan untuk mengubah izin baca, tulis, dan eksekusi pada file atau direktori. Terdapat dua metode penulisan: simbolik dan numerik (oktal).

Terminal — chmod: Metode Simbolik
# Sintaks: chmod [siapa][operator][izin] file
# Siapa: u (owner), g (group), o (others), a (all)
# Operator: + (tambah), - (hapus), = (tetapkan)

# Menambahkan izin eksekusi untuk owner
chmod u+x script.sh

# Menghapus izin tulis dari others
chmod o-w laporan.txt

# Menetapkan izin rw untuk group (menggantikan yang lama)
chmod g=rw data.csv

# Memberikan semua izin ke semua kategori
chmod a+rwx folder/

# Kombinasi: owner rwx, group rx, others tanpa izin
chmod u=rwx,g=rx,o= private.sh
Terminal — chmod: Metode Numerik (Oktal)
# Sintaks: chmod [3 digit oktal] file
# Digit 1 = owner, Digit 2 = group, Digit 3 = others

# 755: rwxr-xr-x — umum untuk skrip & direktori web
chmod 755 script.sh

# 644: rw-r--r-- — umum untuk file konfigurasi
chmod 644 config.txt

# 700: rwx------ — hanya owner yang bisa akses
chmod 700 private/

# 777: rwxrwxrwx — semua bisa akses (HINDARI di produksi!)
chmod 777 shared/

# -R: Rekursif (berlaku untuk semua isi direktori)
chmod -R 755 /var/www/html/
Nilai OktalNotasi SimbolikPenggunaan Umum
777rwxrwxrwx⚠ Semua izin — hindari di server produksi
755rwxr-xr-xDirektori web, skrip yang dapat dieksekusi publik
644rw-r--r--File teks, konfigurasi, halaman web statik
700rwx------Skrip atau direktori privat milik owner saja
600rw-------File sensitif seperti private key SSH
400r--------File hanya-baca yang sangat sensitif

chown — Mengubah Pemilik File

Perintah chown (change owner) digunakan untuk mengalihkan kepemilikan file kepada pengguna dan/atau grup lain. Perintah ini memerlukan hak akses root.

Terminal — chown: Mengubah kepemilikan
# Sintaks: chown [user][:grup] file

# Mengubah pemilik file
sudo chown budi laporan.txt

# Mengubah pemilik dan grup sekaligus
sudo chown budi:developer laporan.txt

# Hanya mengubah grup (dengan titik dua tanpa nama user)
sudo chown :developer laporan.txt

# Rekursif: ubah seluruh isi direktori
sudo chown -R budi:developer /home/budi/project/

# Verifikasi perubahan
ls -l laporan.txt
-rw-r--r-- 1 budi developer 1024 Jan 10 laporan.txt

chgrp — Mengubah Grup File

Perintah chgrp (change group) secara khusus digunakan untuk mengubah grup yang diasosiasikan dengan suatu file atau direktori, tanpa mengubah pemiliknya.

Terminal — chgrp: Mengubah grup file
# Mengubah grup sebuah file
sudo chgrp developer laporan.txt

# Mengubah grup secara rekursif pada direktori
sudo chgrp -R www-data /var/www/html/

# Verifikasi menggunakan stat
stat laporan.txt
  File: laporan.txt
  Size: 1024       Blocks: 8        IO Block: 4096
Access: (0644/-rw-r--r--)  Uid: (1001/budi)  Gid: (1002/developer)
💡 Ringkasan Perintah
Sebagai panduan cepat: gunakan chmod untuk mengubah apa yang boleh dilakukan terhadap file, gunakan chown untuk mengubah siapa pemiliknya, dan gunakan chgrp untuk mengubah grup mana yang berasosiasi dengan file tersebut.

Alur Kerja Umum Konfigurasi Izin File:

1
Periksa izin saat ini
Gunakan ls -l nama_file atau stat nama_file untuk melihat kondisi izin dan kepemilikan yang berlaku.
2
Tentukan kebijakan akses yang diinginkan
Tentukan siapa yang perlu mengakses file tersebut: hanya owner, anggota grup tertentu, atau semua pengguna?
3
Tetapkan kepemilikan dengan chown/chgrp
Pastikan file dimiliki oleh pengguna dan grup yang tepat sebelum mengatur izinnya.
4
Terapkan izin yang sesuai dengan chmod
Gunakan nilai oktal seperti 644, 755, atau 700 sesuai kebutuhan keamanan.
5
Verifikasi dan uji akses
Periksa kembali dengan ls -l dan lakukan pengujian akses dari akun pengguna yang relevan untuk memastikan konfigurasi berjalan benar.