Memahami Hak Akses File Di Linux

Terbitan diperbarui

Penulis Arianto

Photo of author
 

Mau Serius Belajar Linux?
Klik gabung komunitas

Saat kamu belajar perintah linux  pasti kamu akan menjumpai kasus dimana suatu file tidak bisa kamu buka, bahkan  tidak bisa kamu lihat dengan user biasa (bukan root).

Baca: belajar perintah linux

Disinilah penting nya kamu memahami hak akses /file perminssion di linux.

Apa itu Hak Akses File di Linux

Linux menerapkan hak akses file yang sangat ketat, setiap file akan dibeli label (file attribute) yang menjabarkan hak akses untuk user dan group terhadap file tersebut.

Hanya user dan group tertentu yang bisa membaca,memodifikasi dan mengeksekusi file tersebut.

Atribut ini sering disebut dengan file permission.

Untuk Membatasi Akses user dan process ke File

Tujuan diberlakukan/set file permission pada linux adalah untuk alasan keamanan  yang tujuan utamanya adalah membatasi akses user terhadap suatu file.

Cara ini sangat efektif untuk memproteksi file sistem dari modifikasi user yang tidak bertanggung jawab (hacker).


Ownership dan File Permission

Pada sistem linux, semua file memiliki tuan, ini adalah cara untuk menentukan hak akses untuk file tersebut.

Hak akses pemilik,group dan user lain terhadap file tersebut ditentukan oleh file permission/ file attribut yang menempel di file tersebut.

Hak Kepemilikan File (Ownership)

Setiap file di linux punya tuan (owner) yang punya hak akses penuh terhadap file tersebut (baca,tulis,eksekusi), secara default owner sebuah file adalah user yang membuat file tersebut.

Tapi administrator/root bisa mengubah ownership sebuah file dengan perintah chown dan bisa menentukan hak akses untuk user dan group terhadap file tersebut dengan perintah chmod.

Hak akses untuk owner,group dan user lain di dalam sistem ditentukan oleh file attribut /file permission

Attribute Hak Akses File (File Permission)

Hak akses suatu file didefinisikan dalam suatu atribut yang sering disebut file permission.

Pada attribut file permission menjelaskan permission/hak akses untuk 3 kelompok user,yaitu :

  • Ownner : Menjelaskan Permission/hak akses untuk owner/pemilik file tersebut.
  • Group : Menentukan permission/hak akses untuk sekelompok user yang masuk dalam group tersebut.
    jadi semua user yang masuk ke group tersebut akan mempunyai hak akses file yang sama
  • Other/World : Menentukan permission/hak akses untuk semua user yang ada di sistem.

Flag File permission Huruf (RWX)

Untuk menjelaskan hak akses suatu file,linux menggunakan flag permission ,dimana setiap flag menjelaskan hak akses untuk user owner,group dan world/other.

  • Read (R) : Hak akses untuk membaca isi file/folder
  • Write(W) : Hak akses untuk memodifikasi suatu file/memodifikasi isi folder
  • Execute(X) : Hak akses untuk mengeksekusi sutu file/menjalankan aplikasi.

Jadi pada attribut file permission nanti ada flag permission seperti diatas untuk menentukan hak akses user terhadap file tersebut.

Selain dengan simbolic/huruf,flag file permission juga bisa dijabarkan menggunakan angka.

Flag File Permission Angka

Metode atribut angka jauh lebih efisien saat kamu ingin mengeset attribut suatu file,karena kamu hanya mengetikan 1 digit file untuk setiap segmen (total 3 digit angka untuk mengeset permission  owner,group dan other).

Attribut/permission Read(R) mempunyai nilai 4 ,Write (W) mempunyai nilai 2 sedangkan attribut executable(X) mempunyai nilai 1.

memahami file permission pada linux

Cara mengubah hak akses file dengan perintah CHMOD

Jadi jika kamu ingin megeset permission suatu file dengan hak akses Owner (read,write,execute) ,group (read,execute) dan Other (read,execute) maka kamu cukup mengesetnya menggunakan 3 digit angka yaitu 755

$ chmod 755 nama_file_folder

Sticky bit Permission

memahami hak akses file di linux
sticky bit permission

Agar user other/world Tidak bisa menghapus file

sticky bit permission ini digunakan untuk mengantisipasi dihapusnya sebuah file/folder oleh user  (other/world) yang mempunyai permission Write (w) terhadap file/folder tersebut.

Dengan demikian hanya root dan owner yang bisa mendelet file/folder tersebut.

jadi ingat,attribut ini hanya digunakan untuk mengeset user yang masuk dalam kategori other/world (bukan owner ataupun group).

Cara Mengeset Sticky Bit Permission

Kamu bisa memberikan atribut sticky bit dengan 2 cara yaitu :

  • numeric value sticky bit permission =1
  • dan sysmbolic character sticky bit permission =t

Contoh kamu ingin mengeset sticky bit permission pada folder /home/share maka kamu bisa mengesetnya menggunakan :

Cara symbolic

# chmod o+t /home/share atau chmod +t /home/share 
Untuk menghapus atribut permision kamu bisa gunakan operator  (minus)
# chmod o-t /home/share atau chmod -t /home/share

Cara Numeric

Pertama kamu harus tau permission seperti apa yang kamu inginkan pada directory /home/share 

Misal folder diatas mempunyai attribut drwxrw-rwx 

Kamu bisa mengkonversinya  kedalam numeric 3 digit  permission dan  menambahkan angka 1 pada digit awal menjadi 4 digit.

r(2)+w(4)+x(1)  r(2)+w(4)+ (0) r(2)+w(4)+x(1) –> drwxrw-rwx =767
# chmod 1767 /home/share

setelah diberi attribut sticky bit permission maka jika dilihat menggunakan perintah ls -l maka akan terlihat seperti dibawah ini

[root@SparkFly ~]# chmod 1767 /home/share 
[root@SparkFly ~]# ls -l 
/home/  drwxrw-rwt 1 root root 0 Jul 11 14:25 share 

T besar dan t Kecil pada sticky bit attribute

T besar dan t kecil memiliki makna yang berbeda, dimana T besar mengindikasikan atribut x tidak diset dan t kecil mengindikasikan attribut x diset.


Logic nya begini sticky bit + execute permision diwakili dengan t kecil dan  sticky bit + non execute permission diwakili dengan T besar

contoh: jika kamu ingin membuat folder /home/share menjadi non executable tapi tetap menerapkan attribut sticky bit permission maka caranya :

Cara symbolic
$ sudo chmod o+t /home/share atau chmod +t /home/share 

$ sudo chmod o-x /home/share

Cara Numeric
Pertama kamu harus tau permission seperti apa yang kamu inginkan pada directory /home/share 

misal atribute folder diatas adalah drwxrw-rw-

Kamu mengkonversinya kedalam numeric 3 digit  permission dan  menambahkan angka 1 pada digit awal menjadi 4 digit.

r(2)+w(4)+x(1)  r(2)+w(4)+ (0) r(2)+w(4)+(0) –> drwxrw-rw- =766
# chmod 1766 /home/share

 mari lihat dengan perintah ls -l maka hasilnya akan terlihat seperti dibawah ini (atribut T besar)

[root@SparkFly ~]# chmod 1766 /home/share 
[root@SparkFly ~]# ls -l /home/  
drwxrw-rwT 1 root root 0 Jul 11 14:25 share

SUID Permission

SUID (Set owner User ID up on execution) merupakan special permission yang diberikan kepada file pada linux sistem.Secara normal ketika aplikasi dijalankan di linux aplikasi tersebut dieksekusi menggunakan user dan permission dari user itu sendiri.

SUID memberikan permission secara sementara kepada aplikasi agar dijalankan menggunakan user dan permission dari owner file/aplikasi tersebut, bukan menggunakan user dan permission user yang menjalanan nya.

cara setting SUID permisison di linux

Kapan dan untuk apa SUID digunakan?

SUID digunakan ketika kita sebagai admin tidak mau memberikan akses root /sudo kepada user yang akan menjalankan aplikasi tertentu,tetapi aplikasi tertentu hanya bisa berjalan jika dijalankan oleh root.

Maka solusinya adalah dengan set owner aplikasi ke user root dan  menambahkan permission SUID ke aplikasi tersebut.

Setelah aplikasi diset SUID maka aplikasi akan berjalan menggunakan user root dan permission root walau dijalankan oleh user biasa tanpa permission root /sudo.

Cara mengeset SUID pada sebuah file /aplikasi 

SUID memiliki numerical value 4 dan symbolic value s ,jadi untuk mengeset file/folder dengan attribut SUID kita hanya perlu menambahkan angka 4 pada digit pertama saat set permission menggunakan cara numerical/octal  dan menambahkan +s jika menggunakan cara symbolic

Contoh : kita ingin set SUID pada file degan nama aplikasi.sh

Cara symbolic
# chmod u+s aplikasi.sh dan untuk menghapus SUID permission  gunakan  # chmod u-s aplikasi.sh 

Cara Numeric
Pertama kita harus tau permission seperti apa yang kita inginkan pada file aplikasi.sh misal : -rwx–x–x lalu kita mengkonversi kedalam numeric 3 digit  permission dan  menambahkan angka 4 pada digit awal menjadi 4 digit.
r(2)+w(4)+x(1)    (0)+(0)+ x(1)     (0)+(0)+x(1) –> -rwx–x–x =711
# chmod 4711 aplikasi.sh 

untuk menghapus SUID permission ganti 4 jadi tak ada # chmod 711 aplikasi.sh

Mengeset SUID harus dilakukan oleh user owner yang ingin permission nya diturunkan (inherit) ketika file/aplikasi tersebut dijalankan oleh user lain.

S besar dan s kecil memiliki arti yang berbeda ketika muncul di atribut saat menggunakan perintah ls -l ,dimana S besar mengindikasikan atribut x tidak diset dan s kecil mengindikasikan attribut x diset.

Logic nya begini SUID + execute permision diwakili dengan s kecil dan  SUID + non execute permission diwakili dengan S besar


SGID Permisison

cara set SGID advanced permission pada linux

SGID (Set Group ID up on execution) adalah special permission yang diberikan untuk file/folder pada linux.

Pada kasus normal,ketika user mengeksekusi file/aplikasi maka aplikasi tersebut akan berjalan menggunakan user dan permission user yang menjalankannya.

SGID atribut memberikan permission sementara kepada user diluar group (other) untuk menjalankan file/aplikasi menggunakan permission group dari file/aplikasi itu sendiri.

SGID mirip dengan SUID.

Perbedaan nya adalah SUID menggunakan owner permission untuk menjalankan file/aplikasi sedangkan SGID menggunakan group permission untuk menjalankan file/aplikasi ketimbang menggunakan permission user yang menjalankan file/applikasi tersebut.

Cara mengeset SGID pada sebuah file /aplikasi 

SGID memiliki numerical value 2 dan symbolic value s ,jadi untuk mengeset file/folder dengan attribut SUID kita hanya perlu menambahkan angka 2 pada digit pertama saat set permission menggunakan cara numerical/octal  dan menambahkan +s jika menggunakan cara symbolic

Contoh : kita ingin set SGID pada file degan nama aplikasi.sh

Cara symbolic
# chmod g+s aplikasi.sh dan untuk menghapus SUID permission  gunakan  # chmod g-s aplikasi.sh 

Cara Numeric
Pertama kita harus tau permission seperti apa yang kita inginkan pada file aplikasi.sh misal : -rwxrwx— lalu kita mengkonversi kedalam numeric 3 digit  permission dan  menambahkan angka 2 pada digit awal menjadi 4 digit.
r(2)+w(4)+x(1)    r(2)+w(4)+ x(1)     (0)+(0)+(0) –> -rwxrwx— =770
# chmod 2770 aplikasi.sh untuk menghapus SUID permission ganti 4 jadi tak ada # chmod 770 aplikasi.sh

KESIMPULAN

Saat kamu belajar linux server kamu wajib untuk mempelajari dan memahami advanced dan special permission linux,karena akan sangat membantu mengatasi masalah saat kamu mengelola server linux.

 

Panduan Lanjutanya

 

Artikel Terkait

About Arianto

Hai,Nama saya Arie. Saya seorang profesional dan saya menggunakan linux untuk mendukung pekerjaan. Saya suka berbagi pengalaman bekerja saya melalui blog,agar bisa membantu mu belajar hal yang sama dengan lebih mudah dan cepat.

3 pemikiran pada “Memahami Hak Akses File Di Linux”

Tinggalkan komentar

This site uses Akismet to reduce spam. Learn how your comment data is processed.