Fondasi · Fase 1
Izin File di Linux: rwx, Notasi Angka, SUID, SGID, dan Sticky Bit
Siapa boleh membaca, mengubah, dan menjalankan file ini? Pelajari cara membaca izin rwx, beda artinya pada file dan folder, notasi angka dan huruf pada chmod, umask, serta izin khusus SUID, SGID, dan sticky bit yang sering dimanfaatkan untuk privilege escalation.

Di artikel navigasi terminal, kamu sudah berkenalan singkat dengan chmod dan cara menghitung izin dengan angka. Sekarang kita masuk lebih dalam. Izin file adalah salah satu lapisan pertahanan paling dasar di Linux, dan juga salah satu sumber celah yang paling sering ditemukan saat audit maupun serangan.
Pertanyaannya sederhana: siapa boleh melakukan apa terhadap file ini? Jawabannya tersimpan dalam sepuluh karakter kecil yang muncul setiap kali kamu menjalankan ls -l. Di artikel ini kamu akan belajar membacanya dengan lancar, mengubahnya dengan dua cara penulisan, dan mengenali izin khusus SUID, SGID, dan sticky bit.
Membaca sepuluh karakter izin
$ ls -l
-rw-r--r-- 1 budi dev 1200 Nov 4 10:00 laporan.txt
drwxr-x--- 2 budi dev 4096 Nov 4 10:05 proyek
Karakter pertama menunjukkan jenis: - untuk file biasa, d untuk folder, dan l untuk link. Sembilan karakter sesudahnya dibagi menjadi tiga kelompok berisi tiga huruf:
| Bagian | Karakter | Untuk siapa | Artinya |
|---|---|---|---|
| Jenis | - | - | File biasa |
| Kelompok 1 | rw- | Pemilik (user) | Boleh membaca dan mengubah |
| Kelompok 2 | r-- | Grup (group) | Hanya boleh membaca |
| Kelompok 3 | r-- | Lainnya (other) | Hanya boleh membaca |
Linux memeriksa kelompok ini secara berurutan. Kalau kamu pemilik file, yang berlaku hanya izin pemilik. Kalau bukan pemilik tapi anggota grupnya, yang berlaku izin grup. Selain itu, berlaku izin "lainnya".
rwx pada file dan folder
Banyak pemula mengira huruf r, w, dan x artinya selalu sama. Padahal pada folder, artinya berbeda.

Perhatikan izin w pada folder. Siapa pun yang punya izin tulis di sebuah folder bisa menghapus atau mengganti nama file di dalamnya, termasuk file milik orang lain, walaupun ia tidak punya izin terhadap file itu sendiri. Inilah alasan folder dengan izin tulis untuk semua orang sangat berbahaya, kecuali dilindungi sticky bit yang akan kita bahas nanti.
Dua cara menulis izin
Notasi angka
Seperti di artikel sebelumnya, setiap huruf punya nilai: r = 4, w = 2, x = 1. Jumlahkan untuk setiap kelompok, lalu tulis tiga angka untuk pemilik, grup, dan lainnya.
| Angka | Huruf | Artinya |
|---|---|---|
0 | --- | Tidak ada izin |
1 | --x | Hanya jalankan |
2 | -w- | Hanya ubah |
3 | -wx | Ubah dan jalankan |
4 | r-- | Hanya baca |
5 | r-x | Baca dan jalankan |
6 | rw- | Baca dan ubah |
7 | rwx | Semua izin |
Notasi angka cocok untuk menetapkan izin secara utuh, misalnya chmod 640 laporan.txt.
Notasi huruf
Kalau kamu hanya ingin mengubah sebagian izin tanpa menghitung ulang semuanya, notasi huruf lebih praktis.

chmod u+x skrip.sh # pemilik boleh menjalankan
chmod go-w laporan.txt # grup dan lainnya tidak boleh mengubah
chmod o= rahasia.txt # hapus semua izin untuk orang lain
chmod -R g+rX proyek # grup boleh membaca seluruh isi folder proyek
Pada contoh terakhir, opsi -R berarti berlaku untuk semua isi folder. Huruf X besar artinya izin jalankan hanya ditambahkan pada folder dan file yang memang sudah bisa dijalankan, sehingga file dokumen biasa tidak ikut menjadi "program".
umask: izin bawaan file baru
Saat kamu membuat file baru, izinnya tidak muncul begitu saja. Linux memakai umask, yaitu "topeng" yang mengurangi izin maksimum. Cek dengan perintah umask. Nilai yang umum adalah 022, sehingga file baru mendapat izin 644 dan folder baru 755. Beberapa distro memakai 002 untuk pengguna biasa, sehingga grup juga boleh mengubah.
Tiga izin khusus: SUID, SGID, dan sticky bit
Selain rwx, ada tiga izin khusus. Izin ini ditandai huruf s atau t menggantikan posisi x, dan ditulis sebagai angka keempat di depan notasi angka.

Contoh paling terkenal adalah /usr/bin/passwd. Password tersimpan di /etc/shadow yang hanya bisa diubah root, seperti yang kamu pelajari di materi user management. Lalu bagaimana pengguna biasa bisa mengganti password-nya sendiri? Karena program passwd memiliki SUID: saat dijalankan siapa pun, program itu berjalan dengan hak pemiliknya, yaitu root. Program ini dirancang hati-hati agar hanya mengizinkan pengguna mengganti password miliknya sendiri.
ls -l /usr/bin/passwd # perhatikan huruf s pada posisi x pemilik
ls -ld /tmp # perhatikan huruf t di posisi terakhir
chmod 2775 folder-tim # aktifkan SGID pada folder kerja bersama
chmod u+s program # aktifkan SUID dengan notasi huruf
chmod +t folder-umum # aktifkan sticky bit
Kenapa SUID diincar penyerang
SUID ibarat kartu akses yang dipinjamkan sementara. Kalau programnya aman, tidak masalah. Tapi kalau program ber-SUID root bisa disuruh melakukan hal lain, misalnya membuka shell, membaca file sembarang, atau menjalankan perintah, maka pengguna biasa bisa ikut mendapat hak root. Teknik ini disebut privilege escalation (menaikkan hak akses).
Karena itu, salah satu langkah pertama pentester setelah berhasil masuk ke server adalah mencari file SUID, dan langkah yang sama juga dilakukan auditor untuk menutup celahnya.
find / -perm -4000 -type f 2>/dev/null # semua file SUID
find / -perm -2000 -type f 2>/dev/null # semua file SGID
find / -perm -0002 -type d ! -perm -1000 2>/dev/null # folder bisa ditulis semua orang, tanpa sticky bit
| Temuan | Kenapa berbahaya | Perbaikan |
|---|---|---|
| Program ber-SUID root yang tidak dikenal atau baru muncul | Bisa jadi pintu belakang yang ditanam penyerang | Selidiki asal-usulnya, lalu cabut dengan chmod u-s atau hapus |
Editor, interpreter, atau alat seperti find diberi SUID | Bisa dimanfaatkan untuk menjalankan perintah sebagai root | Cabut SUID-nya |
| File konfigurasi atau skrip milik root yang bisa ditulis semua orang | Penyerang bisa menyisipkan perintah yang nanti dijalankan root | Ubah menjadi 644 atau 755, pemilik root |
| Folder bisa ditulis semua orang tanpa sticky bit | File orang lain bisa dihapus atau diganti | Tambahkan sticky bit atau kurangi izin tulisnya |
| File rahasia seperti kunci SSH bisa dibaca grup atau lainnya | Kunci bisa dicuri pengguna lain | Ubah menjadi 600 |
Kenapa ini penting untuk keamanan siber
Izin file yang salah adalah salah satu temuan paling umum dalam audit server, dan salah satu jalan paling umum yang dipakai penyerang untuk naik dari pengguna biasa menjadi root. Contohnya kunci SSH yang bisa dibaca semua orang, skrip backup milik root yang bisa diubah siapa saja, atau program SUID yang tidak seharusnya ada. Kalau kamu bisa membaca izin dengan lancar dan tahu apa yang perlu dicurigai, kamu sudah bisa menemukan banyak celah sebelum penyerang menemukannya.
Ringkasan
- Izin dibaca dalam tiga kelompok: pemilik, grup, dan lainnya, masing-masing dengan r, w, dan x.
- Pada folder,
rberarti melihat daftar isi,wberarti membuat dan menghapus file di dalamnya, danxberarti bisa masuk. - Notasi angka (
chmod 640) cocok untuk menetapkan izin utuh, notasi huruf (chmod g-w) cocok untuk perubahan kecil. umaskmenentukan izin bawaan file dan folder baru.- SUID (4) menjalankan program dengan hak pemiliknya, SGID (2) dengan hak grupnya, dan sticky bit (1) melindungi file di folder bersama.
- Program SUID yang tidak semestinya adalah jalan umum privilege escalation. Periksa secara berkala dengan
find.
Tonton dan baca juga
Dengan materi ini, kamu menyelesaikan modul Sistem Operasi Linux. Modul berikutnya membahas jaringan komputer, dimulai dari model OSI 7 layer: fungsi setiap lapisan dan contoh protokolnya. Buka di roadmap untuk melanjutkan.