Cara Mengelola Izin File dan Direktori di Linux
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:
| Izin | Numerik | Arti |
|---|---|---|
r | 4 | Membaca isi file/mendaftar direktori |
w | 2 | Menulis/mengubah file atau direktori |
x | 1 | Mengeksekusi 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:
| Posisi | Arti |
|---|---|
| Karakter 1 | Jenis file (- file biasa, d direktori, l symlink) |
| Karakter 2-4 | Izin owner (rw-) |
| Karakter 5-7 | Izin group (r--) |
| Karakter 8-10 | Izin 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 = 7r-x= 4+0+1 = 5r--= 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โ
man chmod,man chown,man chgrpdi sistem Linux- Client Area untuk kelola layanan Nusa.id
- Tiket Bantuan
