GNU/Linux >> Belajar Linux >  >> Linux

Izin File Linux:Semua yang Perlu Anda Ketahui

Linux adalah sistem operasi multi-pengguna yang memungkinkan Anda mengatur beberapa akun pengguna dan grup pengguna untuk mengakses komputer yang sama. Seperti yang dapat Anda bayangkan, ini memunculkan beberapa masalah keamanan. Untungnya, Linux hadir dengan pengaturan dan opsi izin file yang kuat yang mencegah pengguna mengakses hal-hal rahasia dan sensitif satu sama lain.

Anda akan dapat menentukan grup pengguna yang berbeda dan memberikan izin file tambahan kepada mereka. Tanpa izin yang tepat, pengguna atau grup pengguna tidak akan bisa mendapatkan akses ke file dan direktori Anda, yang membuat semua informasi Anda tetap aman.

Untuk bacaan ini, kami telah menyiapkan panduan terperinci tentang izin file Linux. Pada akhirnya, Anda harus memiliki pemahaman yang kuat tentang arti setiap izin file, dan cara melindungi file dan direktori Anda menggunakan fungsi tersebut.

Memahami Kepemilikan dan Izin File

Untuk memahami kepemilikan dan izin file Linux, Anda harus terlebih dahulu memahami "pengguna" dan "grup".

Pengguna Vs. Grup

Linux memungkinkan Anda untuk membuat banyak "pengguna." Ini membantu memisahkan file dan direktori untuk berbagai orang yang menggunakan komputer. Setiap pengguna memiliki beberapa properti tertentu, termasuk ID Pengguna dan Direktori beranda.

Untuk melihat pengguna yang berbeda di sistem Anda, Anda dapat memasukkan perintah berikut di terminal Anda:

$ cat /etc/passwd

Untuk mengelola semua pengguna, Linux memperkenalkan konsep "grup". Anda dapat membuat satu atau dua grup, lalu menambahkan semua pengguna sistem ke satu atau beberapa grup ini, yang memungkinkan Anda mengelolanya dengan lebih mudah.

Anda juga diizinkan untuk membuat grup tetapi tidak mengisinya dengan pengguna mana pun, dalam hal ini grup tersebut akan menjadi grup dengan nol pengguna.

Tapi, di sisi lain, setelah Anda membuat pengguna, secara otomatis menjadi terkait dengan "grup default." Anda tentu saja dapat menambahkan pengguna ke grup lain. Dengan demikian, pengguna dapat menjadi bagian dari beberapa grup.

Untuk melihat semua grup di sistem Anda, masukkan perintah berikut di terminal Anda:

$ cat /etc/group

Catatan:Setelah menjalankan dua perintah di atas, Anda akan melihat bahwa sistem Anda telah memiliki banyak sekali pengguna dan grup yang tidak Anda buat. Semua ini adalah pengguna dan grup sistem. Ini diperlukan untuk menjalankan semua proses latar belakang dengan aman.

Kepemilikan File dan Pemberian Izin

Setiap kali pengguna membuat file atau direktori baru, itu "dimiliki" oleh pengguna dan grup default pengguna. Selanjutnya, setiap file atau direktori hanya dapat dimiliki oleh satu pengguna dan satu grup.

Jadi, bagaimana Anda membiarkan pengguna lain mengakses file dan direktori Anda? Di sinilah Anda perlu mengatur izin file. Semua file dan direktori memiliki tiga jenis kelas izin. Ini adalah sebagai berikut:

  • Pemilik:Di bawah kelas ini, izin hanya akan memengaruhi pemilik file.
  • Grup:Di bawah kelas ini, izin akan memengaruhi grup yang memiliki file. Namun, jika pemilik file ada di grup ini, gunakan izin "pengguna" alih-alih izin "grup".
  • Lainnya:Di bawah kelas ini, izin akan memengaruhi semua pengguna lain yang ada di sistem.

Anda dapat menetapkan izin yang berbeda untuk masing-masing kelas ini untuk mengontrol pengguna dan grup mana yang mendapatkan tingkat akses ke file dan direktori Anda. Karena itu, mari kita lihat berbagai izin yang dapat Anda tetapkan.

Dengan Linux, Anda mendapatkan akses ke tiga jenis izin file. Ini adalah sebagai berikut:

  • Baca:File yang memiliki izin baca memungkinkan pengguna melihat kontennya. Sedangkan jika suatu direktori memiliki izin baca, maka pengguna hanya dapat melihat nama file dan direktori lain yang tersimpan di dalamnya.
  • Tulis:File yang memiliki izin menulis memungkinkan pengguna untuk mengubah konten file itu, dan bahkan menghapusnya. Sedangkan untuk direktori yang memiliki izin menulis, pengguna diperbolehkan untuk mengubah file dan direktori yang tersimpan di dalamnya, serta membuat file dan direktori baru.

Catatan:Izin menulis tidak berpengaruh apa pun pada direktori kecuali izin eksekusi juga diaktifkan. Ini karena sistem hanya dapat mengambil izin folder saat bit eksekusi disetel.

  • Eksekusi:Sebuah file hanya membutuhkan izin menulis bagi pengguna untuk mengeksekusinya. Namun, izin baca juga perlu diaktifkan, jika tidak maka tidak akan berpengaruh. Jika direktori memiliki izin eksekusi, pengguna akan dapat masuk ke direktori (menggunakan perintah cd) dan melihat metadata file dan direktori yang ada di dalamnya.

Sekarang, Anda harus memiliki pemahaman teoritis dasar tentang peran pengguna Linux, grup, dan konsep kepemilikan dan izin file. Jadi, mari kita lihat bagaimana kita bisa menggunakannya secara praktis.

Bagaimana Cara Melihat Izin File?

Anda mungkin sudah tahu bahwa dengan menggunakan perintah ls, Anda mendapatkan daftar semua file di direktori tertentu. Namun, itu tidak memberi Anda detail apa pun tentang keamanan file. Untuk informasi ini, Anda perlu menggunakan perintah ls -l.

Ini akan memungkinkan Anda untuk menjalankan perintah ls dengan opsi "daftar panjang" yang akan memberi Anda informasi terperinci tentang masing-masing file. Untuk melakukannya, Anda dapat menggunakan perintah berikut:

$ ls -l <path to directory>

Ini akan memberi Anda informasi tentang izin file dari direktori yang diberikan. Atau, jika Anda ingin mendapatkan detail izin file dari direktori Anda saat ini, Anda dapat memasukkan perintah ini:

$ ls -l

Untuk pembacaan ini, kita akan menggunakan perintah ls -l pada direktori home kita.

Mari kita lihat apa arti informasi ini.

  1. Hal pertama yang harus diperhatikan adalah bahwa setiap baris terpisah berisi informasi tentang berbagai file dan direktori yang terletak di direktori tempat Anda menjalankan perintah.
  2. Selanjutnya, karakter pertama di setiap baris akan dimulai dengan "-" yang menunjukkan bahwa itu adalah file, huruf "d," yang berarti itu adalah direktori, atau "l," menunjukkan bahwa itu adalah simbol tautan. Pada gambar di atas, kita tahu Desktop adalah direktori karena baris dimulai dengan "d". Namun, hello world adalah file karena dimulai dengan “-“.
  3. Setelah itu, kita akan mendapatkan sembilan karakter lagi yang akan menampilkan kombinasi tertentu dari tiga huruf “r,w,x” dan simbol “-.” Ini digunakan untuk menunjukkan izin dari file atau direktori yang sesuai. Di bagian selanjutnya, kita akan membahas bagaimana Anda dapat membaca sembilan karakter ini untuk memahami izin file.
  4. Setelah ini, akan ada dua kolom lagi. Ini akan mengidentifikasi pemilik dan grup file atau direktori. Pada contoh di atas, seperti yang Anda lihat, semua file dan direktori milik pemilik “root” dan grup “root” default.
  5. Kolom berikutnya akan memberi tahu Anda ukuran file atau direktori dalam byte.
  6. Kemudian, kami memiliki dua kolom lagi yang akan menunjukkan tanggal dan waktu file terakhir diubah.
  7. Dan terakhir, kolom terakhir akan menampilkan nama file atau direktori.

Memahami Izin Keamanan

Tepat setelah karakter pertama dari setiap baris, sembilan karakter berikutnya digunakan untuk menunjukkan izin dari file atau direktori terkait.

Mari kita pertimbangkan direktori Desktop dari gambar di atas. Ini memiliki izin rwxr-xr-x. Tapi apa artinya ini?

Nah, pertama-tama Anda harus membagi sembilan karakter menjadi tiga segmen yang masing-masing berisi tiga karakter. Segmen pertama menunjukkan izin untuk Pengguna, yang kedua menunjukkan izin untuk grup, dan yang ketiga menunjukkan izin untuk yang lain.

Dengan demikian, Pengguna memiliki izin rwx. Grup memiliki izin r-x.

Dan akhirnya, yang lain memiliki izin r-x.

Di sini, "r" berarti izin "baca".

Kemudian, “w” menunjukkan  izin “tulis”.

Selanjutnya, “x” berarti Anda memiliki izin “eksekusi”.

Setiap segmen akan memiliki izin ini diatur dalam urutan ini:rwx. Anda tidak akan menemukan urutan seperti rxw atau wxr. Jika izin baca, tulis, atau eksekusi dicabut, Anda akan melihat “-” menggantikan huruf yang sesuai.

Dari pengetahuan ini, kita dapat menyimpulkan bahwa di bawah direktori Desktop, Pengguna memiliki izin untuk membaca, menulis, dan mengeksekusi. Padahal, Grup dan Lainnya hanya memiliki izin untuk membaca dan menjalankan, tetapi tidak menulis.

Demikian pula, untuk file, hello world memiliki izin rw-rw-r–. Ini berarti bahwa Pengguna dan Grup memiliki izin baca dan tulis, tetapi tidak ada izin eksekusi. Pada saat yang sama, yang lain hanya memiliki izin baca, tanpa izin menulis atau mengeksekusi.

Representasi Numerik dan Simbolik dari Izin File

Di bagian di atas, kami menunjukkan kepada Anda bagaimana izin dilambangkan menggunakan huruf "r,w,x" bersama dengan simbol "-." Ini dikenal sebagai mode simbolik. Ada juga cara lain untuk menunjukkan izin file – mode numerik.

Untuk membuatnya lebih mudah dipahami, mari pertimbangkan kembali file hello world, yang memiliki izin rw-rw-r–.

Menurut ini, Pengguna memiliki izin rw-. Dengan demikian, izin baca dan tulis diaktifkan, sedangkan izin eksekusi dinonaktifkan.

Setiap izin yang diaktifkan dilambangkan dengan 1, dan izin yang dinonaktifkan dilambangkan dengan 0. Dengan melakukan ini, kita mendapatkan angka biner, yang dalam hal ini adalah 110. Selanjutnya, kita perlu mengubahnya menjadi oktal, yang memberi kita nomor 6.

Oleh karena itu, untuk file hello world, Pengguna memiliki izin 6. Demikian pula, grup juga memiliki izin 6. Dan Lainnya memiliki izin 4. Dengan demikian, dalam Mode Numerik, izin untuk file hello world adalah 664.

Angka pertama dalam representasi numerik selalu mewakili izin Pengguna, dengan angka kedua digunakan untuk menjelaskan izin Grup, dan angka ketiga digunakan untuk mewakili izin untuk semua Pengguna lain.

Anda mungkin berpikir akan sulit untuk mengonversi biner ke oktal dengan cepat untuk mengatur izin untuk file dan direktori. Tapi yang perlu Anda lakukan hanyalah mengingat ini:

  • r =4
  • w =2
  • x =1
  •  – =0

Dengan demikian, jika Anda ingin membuat nilai rangkap tiga rwx dari r-x, ekuivalen numeriknya adalah 4+0+1=5. Demikian pula, untuk rw-, representasi numeriknya adalah 4+2+0=6. Dan untuk izin rwx, representasi numeriknya adalah 4+2+1=7.

Kami juga telah menyertakan daftar yang menampilkan semua mode numerik yang setara dengan setiap kemungkinan triplet rwx.

  • Angka “0” menunjukkan triplet rwx “—“.
  • Angka “1” menunjukkan triplet rwx “–x”.
  • Angka “2” menunjukkan triplet rwx “-w-“.
  • Angka “3” menunjukkan triplet rwx “-wx”.
  • Angka “4” menunjukkan triplet rwx “r–“.
  • Angka “5” menunjukkan triplet rwx “r-x”.
  • Angka “6” menunjukkan rwx triplet “rw-“.
  • Angka “7” menunjukkan rwx triplet “rwx”.

Jika Anda menemukan representasi mode numerik dari izin agak sulit untuk diingat, maka tidak perlu khawatir. Sebagian besar alat mendukung mode simbolis. Hanya dalam keadaan tertentu, yang terlalu jarang, Anda perlu menggunakan mode numerik.

Perintah “chmod”:Mengubah Izin File

Sekarang, Anda seharusnya sudah memiliki pemahaman yang komprehensif tentang cara kerja izin file Linux, dan cara memahami izin yang dimiliki berbagai grup pengguna untuk file atau direktori tertentu.

Jadi dengan itu, mari kita bicara tentang mengubah izin file. Untuk melakukan ini, pertama-tama mari kita buat file baru menggunakan perintah berikut:

$ touch file.txt

Ini akan membuat "file.txt" baru di direktori tempat kita menjalankan perintah. Selanjutnya, jalankan perintah ls -l untuk melihat izin file.

Seperti yang Anda lihat dari gambar, file.txt memiliki izin rw-rw-r–. Dari sini, kita tahu bahwa baik Pengguna, Grup, maupun Lainnya tidak memiliki izin untuk mengeksekusi file. Mari kita ubah ini.

Untuk menambahkan izin "eksekusi" ke semua pengguna, kita perlu menggunakan perintah berikut:

$ chmod a+x file.txt

Di sini, a menunjukkan bahwa kami mengubah izin untuk semua pengguna, dan +x menunjukkan bahwa kami "menambahkan izin eksekusi".

Sekarang, mari kita lihat apakah itu telah mengubah izin untuk file dengan menjalankan kembali perintah ls -l.

Seperti yang Anda lihat, dari gambar di atas, izin file untuk file.txt sekarang diubah menjadi rwxrwxr-x, memberikan semua pengguna izin eksekusi.

Jika Anda tidak menambahkan "a" pada perintah, maka perintah chmod akan menganggap bahwa perubahan tersebut berlaku untuk semua pengguna secara default. Jadi Anda bisa memasukkan perintah:

$ chmod +x file.txt

Selain itu, chmod juga akan menerima huruf u,g, dan o yang digunakan untuk menunjukkan "Pengguna", "Grup", dan "Lainnya". Selain itu, alih-alih tombol “+”, Anda dapat menggunakan tombol “-”, yang akan mencabut izin.

Mari kita perhatikan perintah berikut sebagai contoh:

$ chmod o-rx,g-w file.txt

Pada perintah di atas, kami menggunakan o-rx untuk menghapus izin baca dan eksekusi dari Lainnya. Padahal, kami menggunakan g-w untuk menghapus izin menulis dari grup. Perhatikan bahwa kita perlu menambahkan koma (,) di antara dua tindakan untuk memisahkannya.

Selain tombol “+” dan “-”, Anda juga dapat menggunakan “=” untuk menentukan izin untuk grup pengguna. Alih-alih menambahkan atau mencabut izin, tombol “=” digunakan untuk mengatur izin tertentu.

Pertimbangkan perintah berikut ini:

$ chmod u=rx, g=r file.txt

Pada perintah di atas, bagian u=rx akan mengatur izin untuk Pengguna sebagai r-x. Demikian pula, g=r akan mengatur izin untuk grup sebagai r–.

Menyetel Izin Menggunakan Mode Numerik

Anda juga dapat mengatur izin menggunakan Mode Numerik. Sebagai contoh, katakanlah Anda ingin mengatur hak akses untuk file.txt sebagai rwxr–r–. Dengan mengacu pada tabel di atas, Anda dapat melihat bahwa representasi numerik dari izin ini adalah 744.

Dengan demikian, yang perlu kita lakukan hanyalah memasukkan perintah berikut untuk mengubah izin file.

$ chmod 744 file.txt

Menyetel Izin ke Semua File di Direktori

Terkadang, Anda mungkin perlu mengubah izin untuk semua file yang termasuk dalam direktori. Mengubahnya satu per satu akan memakan banyak waktu dan tidak praktis. Untuk tujuan ini, kami memiliki tombol -R.

Misalnya, katakanlah Anda ingin menambahkan izin eksekusi ke semua file di direktori Documents hanya untuk pengguna. Untuk melakukan ini, Anda dapat menjalankan perintah berikut:

$ chmod -R u+x Documents

Ubah Izin untuk File dan Direktori yang Tidak Anda Miliki

Perintah chmod hanya memungkinkan Anda untuk mengubah izin file dan direktori yang Anda miliki. Jika Anda perlu mengubah izin file dan direktori yang bukan milik Anda, Anda harus menggunakan sudo.

$ sudo chmod <specify the file permissions> <specify the file/directory name>

Izin Khusus

Sekarang, Anda seharusnya sudah memiliki pemahaman yang baik tentang izin file, kepemilikan file, dan cara mengubah izin file untuk grup pengguna yang berbeda.

Selain itu, ada juga beberapa “tanda hak akses.” Ini digunakan untuk memberikan izin khusus ke file dan direktori.

Bit Lengket

Pertama, mari kita bicara tentang bagian yang lengket. Terkadang, pengguna perlu berbagi dan berkolaborasi pada file atau direktori. Dalam hal ini, Anda perlu memberikan izin baca, tulis, dan eksekusi kepada semua pengguna di sistem.

Tetapi bagaimana jika pengguna secara tidak sengaja menghapus (atau mengacaukan) salah satu file dalam direktori? Kami tidak dapat mengambil begitu saja hak menulis karena akan menghambat kemampuan mereka untuk bekerja dengan file tersebut.

Di sinilah bit lengket berperan. Jika Anda mengatur bit lengket pada direktori atau file, hanya pengguna root, pemilik direktori, dan pemilik file yang memiliki izin untuk menghapus atau menghapusnya. Tidak ada pengguna lain yang memiliki opsi untuk menghapus/mengganti nama file dan direktori dengan sticky bit yang diaktifkan meskipun mereka memiliki izin yang diperlukan.

Secara default, sticky bit digunakan di direktori /tmp. Seperti yang Anda ketahui, direktori /tmp menyimpan file-file sementara dari semua program yang berjalan di sistem Anda dan digunakan oleh semua pengguna yang berbeda di sistem Anda. Dengan demikian, untuk menghindari penghapusan file-file sementara yang penting secara tidak sengaja, Linux, secara default, menyetel bit lengket pada /tmp.

Untuk mengatur sticky bit pada salah satu direktori Anda, Anda dapat menggunakan perintah berikut:

$ chmod +t <directory_name>

Di sini, "t" adalah karakter yang digunakan untuk mewakili bit lengket, dan kita menggunakan tombol "+" untuk menambahkan bit lengket ke direktori.

Demikian pula, untuk menghapus bit lengket dari direktori, kita dapat menggunakan perintah berikut:

$ chmod -t <directory_name>

Bit Setuid dan Setgid

Bit setuid digunakan untuk menjalankan file sebagai pengguna yang memiliki file tersebut. Bit setgid digunakan untuk menjalankan file sebagai grup yang memiliki file tersebut. Bit setuid digunakan pada file, dan itu tidak mempengaruhi direktori. Namun, bit setgid dapat digunakan pada direktori.

Ini memungkinkan file dan subdirektori baru yang dibuat di dalam direktori untuk mewarisi grup pemilik sebagai lawan dari grup default pengguna. Selain itu, subdirektori baru di bawah direktori akan memiliki bit setgid yang disetel, tetapi file lama tidak akan terpengaruh.

Untuk mengatur bit setuid pada file, Anda dapat menggunakan perintah berikut:

$ sudo chmod +s <file_name>

Sedangkan untuk menghapus bit setgid, Anda harus menggunakan -s sebagai gantinya. Demikian juga untuk mengatur setgid pada sebuah file, Anda dapat menggunakan perintah:

$ sudo chmod g+s <file_name>

Dan untuk menghapusnya, Anda harus menggunakan g-s.

Kesimpulan

Seperti yang Anda lihat, Linux menawarkan fitur yang kuat dan komprehensif untuk menangani hak berbasis pengguna pada file dan direktori dalam sistem. Kami berharap artikel ini membantu Anda memahami bagaimana izin ini diterapkan. Namun, jika Anda memiliki kebingungan atau pertanyaan tentang izin file Linux, jangan ragu untuk memberikan komentar kepada kami.

Juga, jika Anda memulai dengan Linux, Anda harus menandai seri artikel Learn Linux kami. Ini mencakup banyak tutorial dan panduan berguna untuk pemula serta pengguna tingkat lanjut untuk membantu mereka mendapatkan hasil maksimal dari sistem Linux mereka.


Linux
  1. Direktori tmp Linux:Semua yang Perlu Anda Ketahui

  2. Kompresi File Linux:Semua yang Perlu Anda Ketahui

  3. Linux – Semuanya Adalah File?

  1. Swappiness di Linux:Semua yang perlu Anda ketahui

  2. Semua yang Perlu Anda Ketahui Tentang Sistem File Linux

  3. Semua yang Perlu Anda Ketahui Tentang Perintah Chmod Linux

  1. Semua yang Perlu Anda Ketahui tentang Linux Containers (LXC)

  2. Semua yang Perlu Anda Ketahui Tentang Server Linux Ubuntu

  3. Semua yang Perlu Anda Ketahui tentang Linux OpenSSH Server