Manajemen Hak Akses & User Pada LINUX
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:
$ 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 |
|---|---|---|
| rwx | 7 | 4+2+1 — Baca, tulis, eksekusi |
| rw- | 6 | 4+2+0 — Baca dan tulis |
| r-x | 5 | 4+0+1 — Baca dan eksekusi |
| r-- | 4 | 4+0+0 — Hanya baca |
| --- | 0 | 0+0+0 — Tidak ada izin |
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.
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.
# 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
| Opsi | Keterangan |
|---|---|
| -m | Buat direktori home secara otomatis (/home/nama_user) |
| -s /bin/bash | Tetapkan shell default untuk user |
| -c "Keterangan" | Tambahkan komentar / nama lengkap pengguna |
| -g nama_grup | Tetapkan grup utama (primary group) |
| -G grup1,grup2 | Tambahkan ke grup-grup tambahan (supplementary groups) |
| -e YYYY-MM-DD | Tetapkan tanggal kedaluwarsa akun |
| -u UID | Tentukan 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.
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
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:
# 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:
# 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)
-a (append) bersama -G saat menambahkan grup dengan usermod. Tanpa opsi -a, perintah akan menggantikan semua keanggotaan grup yang ada, bukan menambahkan.
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).
# 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
# 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 Oktal | Notasi Simbolik | Penggunaan Umum |
|---|---|---|
| 777 | rwxrwxrwx | ⚠ Semua izin — hindari di server produksi |
| 755 | rwxr-xr-x | Direktori web, skrip yang dapat dieksekusi publik |
| 644 | rw-r--r-- | File teks, konfigurasi, halaman web statik |
| 700 | rwx------ | Skrip atau direktori privat milik owner saja |
| 600 | rw------- | File sensitif seperti private key SSH |
| 400 | r-------- | 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.
# 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.
# 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)
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:
ls -l nama_file atau stat nama_file untuk melihat kondisi izin dan kepemilikan yang berlaku.644, 755, atau 700 sesuai kebutuhan keamanan.ls -l dan lakukan pengujian akses dari akun pengguna yang relevan untuk memastikan konfigurasi berjalan benar.
0 Response to "Manajemen Hak Akses & User Pada LINUX"
Posting Komentar