Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Linux

Cara Memeriksa Izin File di Linux: Panduan Lengkap

Linux menggerakkan mayoritas server dunia — dari lingkungan VPS Hosting hingga Dedicated Servers tingkat enterprise — dan ada alasan yang bagus untuk itu. Linux cepat, stabil, dan dibangun dengan keamanan di intinya. Salah satu pilar paling fundamental dari keamanan tersebut adalah sistem izin file: mekanisme yang presisi dan elegan yang mengontrol dengan tepat siapa yang dapat membaca, memodifikasi, atau menjalankan file atau direktori apa pun di sistem.

Baik Anda seorang developer yang menerapkan aplikasi web, administrator sistem yang mengamankan server, atau pemula yang belajar command line, memahami cara memeriksa dan menginterpretasikan izin file di Linux adalah keterampilan yang tidak dapat ditawar. Panduan ini mencakup semua yang perlu Anda ketahui — dari dasar-dasar model izin hingga bit khusus tingkat lanjut — dengan perintah praktis dan contoh dunia nyata.

Apa Itu Izin File Linux?

Setiap file dan direktori di Linux memiliki serangkaian izin yang terlampir padanya. Izin ini menentukan tindakan apa yang diizinkan dan oleh siapa. Ada tiga jenis izin inti:

IzinSimbolApa yang Dilakukan pada FileApa yang Dilakukan pada Direktori
BacarLihat isi fileDaftar nama file di dalamnya
TuliswUbah atau hapus fileBuat atau hapus file di dalamnya
JalankanxJalankan file sebagai programMasuki (navigasi ke) direktori

Ketiga izin ini diterapkan secara independen pada tiga kategori pengguna yang berbeda:

  • Pemilik (pengguna) — Pengguna yang memiliki file, biasanya pembuatnya.
  • Grup — Pengguna apa pun yang termasuk dalam grup yang ditugaskan file.
  • Lainnya — Semua orang lain di sistem.

Matriks izin tiga-kali-tiga ini memberikan administrator Linux kontrol yang granular dan kuat atas akses ke setiap sumber daya di sistem.

Cara Memeriksa Izin File: Perintah ls -l

Metode tercepat dan paling umum digunakan untuk memeriksa izin file adalah perintah ls -l (format daftar panjang).

ls -l file.txt

Contoh output:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Mari kita uraikan setiap komponen dari output ini:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Jadi -rw-r--r-- memberi tahu kami:

  • Pemilik (alice): Baca + Tulis (rw-)
  • Grup (developers): Baca saja (r--)
  • Lainnya: Baca saja (r--)

Memeriksa Izin untuk Beberapa File

Untuk melihat izin semua file dalam direktori sekaligus:

ls -la /var/www/html

Flag -a mencakup file tersembunyi (yang dimulai dengan titik). Ini sangat berguna saat mengaudit direktori server web di lingkungan Shared Web Hosting atau VPS.

Mendapatkan Informasi Izin Terperinci dengan stat

Untuk rincian yang lebih menyeluruh — termasuk representasi simbolis dan numerik — gunakan perintah stat:

stat file.txt

Contoh output:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

Baris kuncinya adalah:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Ini memberi Anda:

  • Notasi numerik (oktal): 0644
  • Notasi simbolis: -rw-r--r--
  • User ID (UID) dan Group ID (GID) dengan nama yang dapat dibaca manusia

Perintah stat sangat berharga saat mengatasi kesalahan izin di server produksi, karena memberikan semua konteks yang Anda butuhkan dalam satu output.

Memahami Notasi Izin Numerik (Oktal)

Izin Linux dapat dinyatakan sebagai angka, yang merupakan format yang digunakan oleh perintah seperti chmod. Setiap jenis izin diberi nilai:

IzinNilai Numerik
Baca (r)4
Tulis (w)2
Jalankan (x)1
Tanpa izin (-)0

Anda menghitung nilai izin untuk setiap kategori pengguna dengan menambahkan nilai-nilai bersama-sama:

KombinasiPerhitunganNilai Numerik
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Angka oktal tiga digit mewakili set izin lengkap:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Memeriksa Izin pada Direktori

Direktori menggunakan model izin yang sama, tetapi makna setiap bit sedikit berbeda. Gunakan ls -ld (perhatikan flag -d) untuk memeriksa direktori itu sendiri daripada isinya:

ls -ld myfolder

Contoh output:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

d di awal mengkonfirmasi ini adalah direktori. Izin dirinci sebagai:

  • Pemilik (alice): rwx — Dapat membuat daftar, membuat/menghapus file, dan memasuki direktori
  • Grup (developers): r-x — Dapat membuat daftar file dan memasuki, tetapi tidak dapat membuat atau menghapus
  • Lainnya: --- — Tidak ada akses sama sekali

> Penting: Bit execute (x) pada direktori berarti kemampuan untuk memasuki direktori (yaitu, menggunakan cd). Tanpa x, pengguna tidak dapat menavigasi ke dalam direktori bahkan jika mereka memiliki izin baca. Ini adalah sumber kebingungan yang umum bagi pemula.

Special Permission Bits: setuid, setgid, dan Sticky Bit

Selain sembilan bit izin standar, Linux mendukung tiga bit izin khusus yang menyediakan kontrol akses lanjutan:

1. setuid (s pada bit eksekusi pemilik)

Ketika diatur pada file yang dapat dieksekusi, program berjalan dengan hak istimewa pemilik file bukan pengguna yang memanggil. Ini adalah cara perintah seperti passwd memungkinkan pengguna biasa untuk memodifikasi /etc/shadow (yang dimiliki oleh root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

s di posisi eksekusi pemilik menunjukkan setuid.

2. setgid (s pada bit eksekusi grup)

Pada file, program berjalan dengan hak istimewa grup. Pada direktori, file baru yang dibuat di dalamnya secara otomatis mewarisi grup direktori — berguna untuk folder proyek bersama.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t pada bit eksekusi lainnya)

Ketika diatur pada direktori, hanya pemilik file (atau root) yang dapat menghapus atau mengganti nama file di dalamnya, bahkan jika yang lain memiliki izin tulis. Ini adalah konfigurasi standar untuk /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

t di akhir menandakan sticky bit aktif.

Representasi numerik dari bit khusus:

Special BitNumeric Value
setuid4000
setgid2000
Sticky bit1000

Jadi drwxrwxrwt = 1777 (1000 + 777).

Tabel Referensi Izin Lengkap

SimbolisNumerikArti pada FileArti pada Direktori
---0Tidak ada aksesTidak ada akses
--x1Hanya eksekusiHanya masuk
-w-2Hanya tulisModifikasi konten (dengan x)
-wx3Tulis + EksekusiMasuk dan modifikasi
r--4Hanya bacaDaftar nama (memerlukan x untuk berguna)
r-x5Baca + EksekusiDaftar dan masuk
rw-6Baca + TulisDaftar dan modifikasi (tanpa masuk)
rwx7Akses penuhKontrol penuh

Contoh Izin Dunia Nyata

Berikut adalah pola izin paling umum yang akan Anda temui dalam praktik:

-rw-r--r-- (0644) — File Standar

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

Pemilik dapat membaca dan menulis. Grup dan pengguna lain hanya dapat membaca. Tipikal untuk file konfigurasi dan konten web.

-rwxr-xr-x (0755) — Skrip Dapat Dieksekusi atau Biner

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

Pemilik memiliki akses penuh. Semua orang lain dapat membaca dan mengeksekusi tetapi tidak dapat memodifikasi. Standar untuk skrip shell, biner server web, dan executable publik.

-rw------- (0600) — File Pribadi

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Hanya pemilik yang dapat membaca atau menulis. Tidak ada akses untuk siapa pun. Diperlukan untuk kunci pribadi SSH — SSH akan menolak menggunakan file kunci dengan izin yang lebih luas.

drwxr-xr-x (0755) — Direktori Publik Standar

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Umum untuk direktori root web. Pemilik memiliki kontrol penuh; pengguna lain dapat menjelajahi dan memasuki.

drwx------ (0700) — Direktori Pribadi

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Sepenuhnya pribadi. Hanya pemilik yang dapat mengakses. Diperlukan untuk direktori ~/.ssh.

drwxrwxrwt (1777) — Dapat Ditulis Dunia dengan Sticky Bit

drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

Semua orang dapat membuat file, tetapi hanya pemilik setiap file yang dapat menghapus file mereka sendiri.

Praktik Praktis untuk Lingkungan Server

Jika Anda mengelola server Linux — baik itu VPS yang menjalankan aplikasi web, server mail yang diamankan dengan SSL Certificate, atau mesin yang menghost beberapa domain yang terdaftar melalui Domain Registration — berikut adalah beberapa praktik terbaik izin yang penting:

  1. Jangan pernah atur 777 pada file atau direktori kecuali Anda memiliki alasan yang sangat spesifik dan sementara. File yang dapat ditulis oleh siapa saja adalah risiko keamanan utama.
  2. File server web (misalnya, di bawah /var/www/) biasanya harus 644 untuk file dan 755 untuk direktori, dimiliki oleh pengguna aplikasi Anda.
  3. Kunci SSH harus 600 untuk kunci pribadi dan 644 untuk kunci publik. SSH memberlakukan ini dengan ketat.
  4. File konfigurasi yang berisi kata sandi atau kunci API harus 600 atau 640 paling banyak.
  5. Gunakan find untuk mengaudit izin di seluruh pohon direktori:
   # Find all world-writable files (potential security risk)
   find /var/www -type f -perm -o+w

   # Find all SUID files (for security auditing)
   find / -type f -perm -4000 2>/dev/null

Referensi Perintah Cepat

TugasPerintah
Daftar izin filels -l filename
Daftar izin semua file dalam direktorils -la /path/to/dir
Periksa izin direktori itu sendirils -ld /path/to/dir
Dapatkan detail lengkap termasuk izin numerikstat filename
Ubah izin (simbolis)chmod u+x filename
Ubah izin (numerik)chmod 755 filename
Ubah pemilik filechown user:group filename
Ubah izin secara rekursifchmod -R 755 /path/to/dir
Temukan file yang dapat ditulis oleh siapa sajafind . -perm -o+w -type f

Kesimpulan

Memahami izin file Linux bukan hanya latihan akademis — ini adalah keterampilan praktis dan sehari-hari bagi siapa pun yang mengelola server, menerapkan aplikasi, atau bekerja di lingkungan Linux. Untuk merangkum poin-poin kunci:

  • Gunakan ls -l untuk gambaran umum izin yang cepat dan mudah dibaca pada file dan direktori.
  • Gunakan stat ketika Anda memerlukan representasi simbolis dan numerik, bersama dengan detail kepemilikan.
  • Kuasai kedua notasi — simbolis (rwx) dan numerik (755, 644) — karena alat dan dokumentasi yang berbeda menggunakannya secara bergantian.
  • Ingat perbedaan direktori: bit eksekusi (x) pada direktori berarti kemampuan untuk memasuki direktori tersebut, bukan untuk menjalankannya.
  • Waspadai bit khusus — setuid, setgid, dan sticky bit — karena sering muncul pada sistem produksi dan memiliki implikasi keamanan yang signifikan.

Manajemen izin yang tepat adalah fondasi keamanan Linux. Baik Anda menjalankan proyek pribadi di VPS Hosting atau mengelola armada Dedicated Servers, menyesuaikan izin dengan benar sejak awal akan menyelamatkan Anda dari kerentanan keamanan, aplikasi yang rusak, dan jam-jam tak terhitung untuk pemecahan masalah di kemudian hari.