Apa itu Mode File di Linux
Mode file adalah konsep penting dalam Linux yang menentukan tingkat akses pengguna terhadap file dan direktori. Artikel ini memberikan penjelasan terperinci tentang mode file di Linux, termasuk komponen-komponennya dan izin-izinnya.
Mode file di Linux terdiri dari tiga set izin: baca, tulis, dan eksekusi, dan setiap set berlaku untuk kelompok pengguna tertentu: pemilik, grup, dan lain-lain. Izin baca memungkinkan pengguna untuk melihat isi dari file atau direktori, izin tulis memungkinkan pengguna untuk memodifikasi atau menghapus file atau direktori, dan izin eksekusi memungkinkan pengguna untuk menjalankan file atau mengakses direktori.
Mode file direpresentasikan oleh sebuah string 10 karakter, termasuk jenis file, izin-izin untuk pemilik, grup, dan lain-lain, dan izin khusus seperti setuid
atau setgid
. Memahami mode file sangat penting untuk mengelola akses file dan direktori di sistem Linux.
Cara Memeriksa Mode File
Untuk memeriksa mode file di Linux, Anda dapat menggunakan perintah ls
bersama dengan opsi -l
untuk menampilkan daftar file dengan format panjang. Mode file ditampilkan sebagai string 10 karakter yang mencakup jenis file, izin, dan izin khusus.
Berikut adalah contoh cara memeriksa mode file dari file bernama "example.txt":
$ ls -l example.txt
-rw-r--r-- 1 user user 0 Mar 3 10:31 example.txt
Komponen Mode File
Mode file di Linux terdiri dari tiga komponen utama: jenis file, izin, dan izin khusus. Memahami komponen-komponen ini penting untuk mengelola file di Linux.
Jenis file
Jenis file di Linux dapat diidentifikasi dari karakter pertama dari mode file. Jenis file ini menentukan bagaimana file dapat diakses dan digunakan. Berikut adalah beberapa contoh jenis file di Linux.
File Reguler
File reguler adalah jenis file yang paling umum dalam Linux. Mereka dapat berisi berbagai jenis data, seperti teks, gambar, atau kode. File reguler direpresentasikan oleh tanda hubung (-
) dalam mode file.
-rw-r--r-- 1 user user 1024 Mar 1 10:30 myfile.txt
Dalam contoh ini, "myfile.txt" adalah file reguler dengan izin baca dan tulis untuk pemilik (user) dan izin baca saja untuk grup dan orang lain.
Direktori
Direktori digunakan untuk mengorganisir file dalam struktur hirarkis. Mereka bisa dianggap sebagai folder yang berisi file dan direktori lain. Direktori direpresentasikan oleh huruf "d" dalam mode file.
drwxr-xr-x 2 user user 4096 Mar 1 11:00 mydir/
Dalam contoh ini, "mydir" adalah direktori dengan izin baca, tulis, dan jalankan untuk pemilik dan izin baca dan jalankan untuk grup dan orang lain.
Tautan Simbolik
Tautan simbolik adalah file yang menunjuk ke file atau direktori lain. Mereka digunakan untuk membuat pintasan atau alias ke file atau direktori di lokasi yang berbeda. Tautan simbolik direpresentasikan oleh huruf "l" dalam mode file.
lrwxrwxrwx 1 user user 15 Mar 1 12:00 mylink -> /home/user/file
Dalam contoh ini, "mylink" adalah tautan simbolik yang menunjuk ke "/home/user/file".
Perangkat Blok
Perangkat blok adalah file yang memungkinkan transfer data dalam blok atau potongan. Mereka digunakan untuk berinteraksi dengan perangkat keras seperti hard drive dan USB drive. Perangkat blok dapat dibuat menggunakan perintah mknod
.
brw-rw---- 1 user disk 8, 1 Mar 3 12:15 sda1
Di sini, huruf "b" menunjukkan perangkat blok.
Perangkat Karakter
Perangkat karakter mirip dengan perangkat blok, tetapi mereka mentransfer data karakter demi karakter. Mereka digunakan untuk berinteraksi dengan perangkat keras seperti printer dan port serial. Perangkat karakter juga dapat dibuat menggunakan perintah mknod
.
crw-rw---- 1 user lp 6, 0 Mar 3 12:15 lp0
Di sini, huruf "c" menunjukkan perangkat karakter.
Named Pipes:
Named pipes, juga dikenal sebagai FIFO (first in, first out), adalah file yang menyediakan komunikasi antarproses antara dua atau lebih proses. Mereka digunakan untuk mentransfer data antar proses tanpa memerlukan file sementara. Named pipes dapat dibuat menggunakan perintah mkfifo.
prw-r--r-- 1 user user 0 Mar 3 12:15 mypipe
Sockets:
Sockets adalah file yang menyediakan komunikasi antarproses melalui jaringan. Mereka digunakan untuk mentransfer data antar proses yang berjalan pada komputer yang berbeda. Sockets dapat dibuat menggunakan panggilan sistem socket.
Contoh:
srwxrwxrwx 1 user user 0 Mar 3 12:15 mysocket
Di sini, huruf "s" menunjukkan sebuah socket.
Izin
Izin file Linux direpresentasikan oleh tiga set tiga karakter, sehingga total sembilan karakter. Tiga set mewakili izin untuk pemilik file, grup file, dan semua pengguna lain.
Setiap set tiga karakter mewakili tiga bit izin:
r
(baca)w
(tulis)x
(eksekusi)
Set pertama dari bit izin mewakili izin pemilik file, set kedua mewakili izin grup file, dan set ketiga mewakili izin semua pengguna lain.
Berikut beberapa contoh izin file:
rw-r--r--
: File ini dapat dibaca dan ditulis oleh pemiliknya, dan hanya dapat dibaca oleh grup dan pengguna lain.rwxr-xr-x
: File ini dapat dibaca, ditulis, dan dieksekusi oleh pemiliknya, dan dapat dibaca dan dieksekusi oleh grup dan pengguna lain.drwxr-xr-x
: Direktori ini dapat dibaca, ditulis, dan diakses (yaitu, masuk) oleh pemiliknya, dan dapat dibaca dan diakses oleh grup dan pengguna lain.
Untuk menetapkan atau memodifikasi izin file, Anda dapat menggunakan perintah chmod diikuti dengan izin yang diinginkan. Misalnya, perintah "chmod 755 myfile" mengatur izin file menjadi rwxr-xr-x, yang memungkinkan pemilik untuk membaca, menulis, dan mengeksekusi file, dan memungkinkan grup dan pengguna lain untuk membaca dan mengeksekusi file, tetapi tidak dapat menulis ke dalamnya.
Penting untuk menggunakan izin file secara bertanggung jawab untuk melindungi file yang sensitif dan mencegah akses yang tidak sah.
Izin Khusus
Dalam mode file Linux, izin khusus merujuk pada tiga izin tambahan yang dapat ditetapkan pada file atau direktori.
- setuid (SUID)
- setgid (SGID)
- bit lengket (sticky bit)
Izin-izin ini memodifikasi perilaku file atau direktori secara spesifik.
Setuid (SUID)
Ketika diatur pada file yang dapat dieksekusi, SUID memungkinkan file tersebut dieksekusi dengan izin dari pemilik file, bukan izin dari pengguna yang mengeksekusi file. Hal ini umumnya digunakan untuk program yang memerlukan hak istimewa untuk dijalankan, seperti program pengganti kata sandi. Contoh file SUID adalah "passwd"
-rwsr-xr-x 1 root root 27832 Oct 17 2018 /usr/bin/passwd
Setgid (SGID)
Ketika diatur pada sebuah direktori, SGID memungkinkan file baru yang dibuat di dalam direktori tersebut untuk mewarisi kepemilikan grup dari direktori, bukan kepemilikan grup dari pengguna yang membuat file. Ini berguna untuk direktori yang perlu diakses dan dimodifikasi oleh beberapa pengguna. Contoh dari direktori SGID adalah direktori "/var/www" yang digunakan untuk konten server web:
drwxrwsr-x 2 root www-data 4096 Oct 23 14:23 /var/www
Bit lengket (sticky bit)
Ketika diatur pada sebuah direktori, bit lengket membatasi penghapusan file dalam direktori tersebut hanya untuk pemilik file atau pengguna root. Ini umumnya digunakan untuk direktori dengan akses tulis bersama, seperti direktori "/tmp":
drwxrwxrwt 14 root root 4096 Mar 4 07:20 /tmp