Skip to main content
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Cara Mengelola Izin File dan Direktori di Linux

ยท 4 min read

Ringkasanโ€‹

Setiap file dan direktori di Linux memiliki izin akses yang menentukan siapa saja yang dapat membaca, menulis, atau mengeksekusi. Pemahaman tentang sistem izin ini sangat penting bagi siapa pun yang mengelola server, terutama pengguna Nusa Cloud VPS. Artikel ini membahas konsep izin file Linux, cara melihatnya, mengubahnya dengan chmod, chown, dan chgrp, serta praktik keamanan dasar.

Latar Belakangโ€‹

Linux menggunakan model izin berbasis tiga kelompok pengguna:

  • Owner (u) โ€” pemilik file
  • Group (g) โ€” grup yang memiliki akses
  • Others (o) โ€” semua pengguna lain

Setiap kelompok memiliki tiga jenis izin:

IzinNumerikArti
r4Membaca isi file/mendaftar direktori
w2Menulis/mengubah file atau direktori
x1Mengeksekusi file/memasuki direktori

Izin direpresentasikan sebagai string 10 karakter, misalnya -rwxr-xr--.

Membaca Izinโ€‹

Gunakan perintah ls -l:

ls -l /path/to/file

Output:

-rw-r--r-- 1 user group 1024 Jun 7 10:00 contoh.txt

Penjelasan:

PosisiArti
Karakter 1Jenis file (- file biasa, d direktori, l symlink)
Karakter 2-4Izin owner (rw-)
Karakter 5-7Izin group (r--)
Karakter 8-10Izin others (r--)

Mengubah Izin dengan chmodโ€‹

Mode Numerik (Octal)โ€‹

Setiap izin memiliki nilai numerik: r=4, w=2, x=1. Jumlahkan nilai untuk setiap kelompok.

Contoh:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4
  • --- = 0
# Owner: rwx, Group: r-x, Others: r--
chmod 754 nama-file

# Owner: rwx, Group: r-x, Others: ---
chmod 750 nama-file

# Semua hanya baca
chmod 444 nama-file

# Owner: rwx, Group: rw-, Others: --- (default file)
chmod 660 nama-file

Mode Simbolikโ€‹

# Tambah izin execute untuk owner
chmod u+x nama-file

# Hapus izin write untuk group
chmod g-w nama-file

# Tambah read untuk others
chmod o+r nama-file

# Beri izin baca dan eksekusi untuk semua
chmod a+rx nama-file

# Set izin sama untuk owner dan group
chmod ug=rw nama-file

Menerapkan Izin secara Rekursifโ€‹

Untuk direktori beserta isinya:

# Izin direktori: rwx (755), file: rw-r--r-- (644)
chmod 755 /path/direktori
chmod -R u+rwX,go+rX /path/direktori

Huruf X (kapital) memberi izin eksekusi hanya untuk direktori, bukan file biasa โ€” sangat berguna untuk menerapkan izin secara rekursif tanpa membuat file menjadi executable secara tidak sengaja.

Mengubah Kepemilikan dengan chownโ€‹

# Ubah owner
sudo chown user-baru nama-file

# Ubah owner dan group sekaligus
sudo chown user-baru:group-baru nama-file

# Ubah group saja
sudo chown :group-baru nama-file

# Rekursif untuk direktori
sudo chown -R user-baru:group-baru /path/direktori

Mengubah Grup dengan chgrpโ€‹

# Ubah group file
sudo chgrp group-baru nama-file

# Rekursif
sudo chgrp -R group-baru /path/direktori

Izin Khusus: Sticky Bit, SGID, SUIDโ€‹

Sticky Bitโ€‹

Mencegah pengguna lain menghapus file di direktori bersama meskipun memiliki izin write. Contoh: /tmp.

chmod +t /path/direktori
# atau dengan numerik: chmod 1777 /path/direktori

Tampil sebagai t pada posisi others-execute: drwxrwxrwt.

SGID (Set Group ID)โ€‹

File atau direktori baru di dalam direktori SGID akan mewarisi grup dari direktori induk.

chmod g+s /path/direktori
# atau numerik: chmod 2755 /path/direktori

Tampil sebagai s pada posisi group-execute: drwxr-sr-x.

SUID (Set User ID)โ€‹

Program berjalan dengan hak pemilik file, bukan pengguna yang menjalankannya. Gunakan dengan sangat hati-hati.

chmod u+s /path/program
# atau numerik: chmod 4755 /path/program

โš ๏ธ SUID dan SGID pada program yang tidak aman dapat membuka celah keamanan serius. Jangan gunakan sembarangan.

Praktik Terbaikโ€‹

  • File konfigurasi: 640 (rw-r-----) โ€” hanya owner dan group yang perlu membaca
  • Script: 750 (rwxr-x---) โ€” owner dan group dapat mengeksekusi
  • Direktori web publik: 755 (rwxr-xr-x) untuk direktori, 644 (rw-r--r--) untuk file
  • Kunci SSH (~/.ssh): 700 (rwx------) untuk direktori, 600 (rw-------) untuk file
  • File environment (.env): 600 โ€” jangan pernah 644 atau lebih terbuka

Verifikasiโ€‹

# Periksa izin file
ls -l nama-file

# Periksa izin direktori
ls -ld nama-direktori

# Cari file dengan izin tertentu
find /path -perm /4000 -type f # file SUID
find /path -perm /2000 -type d # direktori SGID
find /path -perm -002 -type f # world-writable file

Kesimpulanโ€‹

Mengelola izin file dan direktori adalah keterampilan dasar yang krusial dalam administrasi Linux. Dengan memahami chmod, chown, dan chgrp, Anda dapat mengontrol akses ke data dan program di server secara granular. Selalu gunakan prinsip least privilege โ€” beri izin minimum yang diperlukan.

Referensiโ€‹