Izin File di Linux/Unix: Cara Membaca, Menulis & Mengubah

⚡ Ringkasan Cerdas

Izin file di Linux dan Unix mengontrol siapa yang dapat membaca, menulis, dan mengeksekusi setiap file, melindungi sistem multi-pengguna melalui dua lapisan: kepemilikan, yang menetapkan pengguna, grup, dan lainnya, serta bit izin baca, tulis, dan eksekusi.

  • 👥 Kepemilikan: Setiap file dan direktori dimiliki oleh seorang pengguna (pemilik), sebuah grup, dan pihak lain, yang terkadang disebut sebagai dunia.
  • 🔑 Izin: Tiga izin berlaku untuk setiap kelas pemilik: baca (r), tulis (w), dan eksekusi (x).
  • 📃 listing: Perintah ls -l menampilkan string izin seperti -rw-rw-r– untuk pemilik, grup, dan dunia.
  • 🔢 Mode absolut: Perintah chmod dengan angka oktal tiga digit menetapkan izin untuk ketiga kelas sekaligus, misalnya 764.
  • Mode simbolik: Perintah chmod dengan u, g, o, a dan +, -, = mengubah satu kelas pemilik tanpa menyentuh kelas pemilik lainnya.
  • 🧭 Perintah kepemilikan: Perintah chown mengubah pemilik dan grup, sedangkan chgrp hanya mengubah grup.
  • 🤖 Bantuan AI: Asisten AI dan GitHub Copilot dapat menghasilkan dan menjelaskan perintah chmod dan chown.

Izin File di Linux dan Unix: cara membaca, menulis, dan mengubah

Izin file di Linux Sistem Unix menentukan siapa yang boleh membaca, memodifikasi, atau menjalankan setiap file, yang menjaga keamanan sistem bersama yang digunakan oleh banyak pengguna. Halaman ini menjelaskan kepemilikan file, izin baca, tulis, dan eksekusi, serta perintah yang mengubahnya.

Linux adalah klon dari Unix, sistem operasi multi-pengguna yang dapat diakses oleh banyak pengguna secara bersamaan. Linux juga dapat digunakan pada mainframe dan server tanpa modifikasi apa pun. Namun, hal ini menimbulkan kekhawatiran keamanan, karena pengguna yang tidak diinginkan atau jahat dapat merusak, mengubah, atau menghapus data penting. Untuk keamanan yang efektif, Linux membagi otorisasi menjadi dua tingkatan:

  • Kepemilikan
  • izin

Konsep izin dan kepemilikan file sangat penting di Linux. Di sini, kami menjelaskan izin dan kepemilikan Linux serta membahas keduanya. Mari kita mulai dengan kepemilikan.

Kepemilikan File Linux

Setiap file dan direktori pada sistem Unix/Linux Anda diberi tiga jenis pemilik, seperti yang tercantum di bawah ini. Diagram di bawah ini menunjukkan bagaimana kepemilikan dipetakan ke pengguna, grup, dan lainnya.

Diagram kepemilikan file Linux yang menunjukkan pengguna, grup, dan kelas izin lainnya.

Pengguna

Pengguna adalah pemilik file. Secara default, orang yang membuat file menjadi pemiliknya. Oleh karena itu, pengguna juga terkadang disebut sebagai pemilik.

Kelompok

A grup pengguna Sebuah grup dapat berisi banyak pengguna. Semua pengguna yang termasuk dalam suatu grup memiliki izin grup Linux yang sama untuk file tersebut. Misalkan Anda memiliki proyek di mana sejumlah orang memerlukan akses ke suatu file. Alih-alih menetapkan izin secara manual kepada setiap pengguna, Anda dapat menambahkan semua pengguna ke dalam sebuah grup dan menetapkan izin grup ke file tersebut, sehingga hanya anggota grup ini, dan bukan orang lain, yang dapat membaca atau memodifikasi file tersebut.

Lainnya

Pengguna lain mana pun yang memiliki akses ke suatu file. Orang ini tidak membuat file tersebut dan juga tidak termasuk dalam grup pengguna yang dapat memiliki file tersebut. Secara praktis, ini berarti semua orang lain. Oleh karena itu, ketika Anda mengatur izin untuk orang lain, hal itu juga disebut sebagai mengatur izin untuk seluruh dunia.

Sekarang muncul pertanyaan besar: bagaimana Linux membedakan ketiga tipe pengguna ini sehingga pengguna 'A' tidak dapat memengaruhi file yang berisi informasi atau data penting milik pengguna 'B' lainnya? Ini seperti tidak menginginkan seorang kolega yang bekerja di komputer Anda. komputer Linux untuk melihat gambar Anda. Di sinilah izin berperan, dan izin tersebut menentukan perilaku pengguna.

Mari kita pahami sistem perizinan pada Linux.

Izin Berkas Linux

Setiap file dan direktori dalam sistem Unix/Linux Anda memiliki tiga izin berikut yang ditentukan untuk ketiga pemilik yang dibahas di atas.

  • Baca: Izin ini memberi Anda wewenang untuk membuka dan membaca sebuah file. Izin baca pada sebuah direktori memberi Anda kemampuan untuk melihat daftar isi direktori tersebut.
  • Menulis: Izin tulis memberi Anda wewenang untuk memodifikasi isi sebuah file. Izin tulis pada direktori memberi Anda wewenang untuk menambahkan, menghapus, dan mengganti nama file yang tersimpan di direktori tersebut. Pertimbangkan skenario di mana Anda memiliki izin tulis pada sebuah file tetapi tidak memiliki izin tulis pada direktori tempat file tersebut tersimpan. Anda akan dapat memodifikasi isi file, tetapi Anda tidak akan dapat mengganti nama, memindahkan, atau menghapus file dari direktori tersebut.
  • Menjalankan: In WindowsSebuah program yang dapat dieksekusi biasanya memiliki ekstensi “.exe”, yang dapat Anda jalankan dengan mudah. ​​Di Unix/Linux, Anda tidak dapat menjalankan program kecuali izin eksekusi telah diatur. Jika izin eksekusi tidak diatur, Anda mungkin masih dapat melihat atau memodifikasi kode program (asalkan izin baca dan tulis telah diatur), tetapi tidak dapat menjalankannya.

Mari kita lihat izin file di Linux dengan contoh. Menjalankan perintah ls -l di terminal akan memberikan hasil berikut:

ls -l

Tangkapan layar di bawah ini menunjukkan string izin dalam daftar yang panjang.

Output perintah `ls -l` di terminal menunjukkan string izin `rw-rw-r--` untuk sebuah file.

Di sini, kami telah menyoroti '-rw-rw-r–', dan kode yang tampak aneh ini memberi tahu kita tentang izin Unix yang diberikan kepada pemilik, grup pengguna, dan dunia.

Di sini, tanda '-' pertama menunjukkan bahwa kita telah memilih sebuah file. Ikon di bawahnya menandai file biasa.

Ikon kecil yang menunjukkan bahwa item yang terdaftar adalah file biasa.

Jika bukan direktori, huruf 'd' akan ditampilkan, seperti pada daftar di bawah ini.

Daftar terminal yang menunjukkan direktori yang ditandai dengan huruf 'd' di awal string izin.

Karakternya cukup mudah diingat.

  • r = izin baca
  • w = izin menulis
  • x = izin eksekusi
  • – = tidak ada izin

Mari kita lihat dari sudut pandang ini. Bagian pertama dari kode tersebut adalah 'rw-'. Ini menunjukkan bahwa pemilik 'Home' dapat:

  • Baca filenya
  • Tulis atau edit file

Pemilik tidak dapat menjalankan file tersebut, karena bit eksekusi diatur ke '-'. Ikon di bawah menunjukkan bit eksekusi yang telah diubah menjadi tanda hubung.

Ikon kecil yang menunjukkan bit izin eksekusi telah diubah menjadi tanda hubung.

Sesuai rancangannya, banyak distribusi Linux seperti Fedora, CentOS, dan Ubuntu Menambahkan pengguna ke grup dengan nama yang sama dengan pengguna tersebut. Jadi, pengguna 'tom' ditambahkan ke grup bernama 'tom'.

Bagian kedua adalah 'rw-'. Ini untuk grup pengguna 'Home', dan anggota grup dapat:

  • Baca filenya
  • Tulis atau edit file

Bagian ketiga ditujukan untuk seluruh dunia, yang berarti semua pengguna. Tertulis 'r–'. Ini berarti pengguna hanya dapat:

  • Baca filenya

Penjelasan di bawah ini memetakan setiap bagian dari string izin ke pemilik, grup, dan dunia.

Penjelasan string izin rw-rw-r-- ke dalam bagian pemilik, grup, dan dunia.

Mengubah izin file/direktori di Linux menggunakan perintah 'chmod'

Misalnya, Anda tidak ingin seorang kolega melihat gambar pribadi Anda. Hal ini dapat dicapai dengan mengubah izin akses file.

Kita bisa menggunakan perintah 'chmod'. Command, yang merupakan singkatan dari 'change mode'. Dengan menggunakan perintah ini, kita dapat mengatur izin (baca, tulis, eksekusi) pada sebuah file atau direktori untuk pemilik, grup, dan semua orang.

sintaks:

chmod permissions filename

Ada dua cara untuk menggunakan perintah tersebut:

  • Modus mutlak
  • Modus simbolik

Mode Absolut (Numerik) di Linux

Dalam mode ini, izin file tidak direpresentasikan sebagai karakter tetapi sebagai angka oktal tiga digit. Tabel di bawah ini memberikan angka untuk semua jenis izin.

Jumlah Jenis Izin Символ
0 Tidak ada izin -
1 Eksekusi -x
2 Menulis -di-
3 Jalankan + Tulis -wx
4 Baca R-
5 Baca + Jalankan rx
6 Membaca + Menulis RW-
7 Baca + Tulis + Eksekusi rwx

Mari kita lihat cara kerja perintah chmod, seperti yang ditunjukkan pada jendela terminal di bawah ini.

Terminal menjalankan perintah chmod 764 pada file sample untuk mengubah izin aksesnya.

Di jendela terminal di atas, kita telah mengubah izin file 'sample' menjadi '764'. Kode absolut '764' tersebut menyatakan hal berikut:

  • Pemilik dapat membaca, menulis, dan mengeksekusi.
  • Grup pengguna dapat membaca dan menulis.
  • Dunia hanya bisa membaca.

Ini ditunjukkan sebagai '-rwxrw-r–', seperti pada hasil di bawah ini.

Tampilan terminal yang menunjukkan file sampel dengan string izin -rwxrw-r-- setelah chmod 764

Beginilah cara Anda dapat mengubah izin pengguna di Linux pada sebuah file dengan menetapkan angka absolut.

Mode Simbolik di Linux

Dalam mode absolut, Anda mengubah izin untuk ketiga pemilik. Dalam mode simbolik, Anda dapat memodifikasi izin pemilik tertentu. Mode ini menggunakan simbol matematika untuk memodifikasi izin file Unix.

Operator Deskripsi
+ Menambahkan izin ke file atau direktori
- Menghapus izin
= Mengatur izin dan menimpa izin yang telah ditetapkan sebelumnya.

Berbagai pemilik diwakili sebagai berikut.

Pengguna Makna
u pengguna/pemilik
g kelompok
o Lainnya
a semua

Kita tidak akan menggunakan izin dalam bentuk angka seperti 755, tetapi karakter seperti rwx. Mari kita lihat contoh yang ditunjukkan di bawah ini.

Terminal menggunakan perintah chmod simbolik dengan u, g, o dan +, -, = untuk mengubah izin tertentu.

Mengubah Kepemilikan dan Grup di Linux

Untuk mengubah kepemilikan file atau direktori, Anda dapat menggunakan perintah berikut:

chown user filename

Jika Anda ingin mengubah pengguna dan grup untuk sebuah file atau direktori, gunakan perintah berikut:

chown user:group filename

Mari kita lihat cara kerjanya, seperti yang ditunjukkan di bawah ini.

Terminal menjalankan perintah chown untuk mengubah pemilik dan grup sebuah file.

Jika Anda hanya ingin mengubah pemilik grup, gunakan perintah:

chgrp group_name filename

'chgrp' adalah singkatan dari change group (mengubah grup). Tangkapan layar di bawah menunjukkan penggunaan perintah chgrp.

Terminal menjalankan perintah chgrp untuk mengubah hanya pemilik grup dari sebuah file.

jenis

  • File /etc/group berisi semua grup yang didefinisikan pada sistem.
  • Anda dapat menggunakan perintah “groups” untuk menemukan semua grup tempat Anda menjadi anggota, seperti yang ditunjukkan di bawah ini.

Terminal menjalankan perintah groups untuk menampilkan daftar grup tempat pengguna tersebut tergabung.

  • Anda dapat menggunakan perintah newgrp untuk bekerja sebagai anggota grup selain grup default Anda, seperti yang ditunjukkan di bawah ini.

Terminal menjalankan perintah newgrp untuk beralih ke grup yang berbeda.

  • Anda tidak dapat memiliki dua grup yang memiliki file yang sama.
  • Anda tidak memiliki grup bersarang di Linux. Satu grup tidak dapat menjadi sub-grup dari grup lain.
  • x — mengeksekusi direktori berarti diizinkan untuk "masuk" ke direktori dan mendapatkan akses ke sub-direktori.
  • Terdapat izin lain yang dapat Anda atur pada file dan direktori, yang akan dibahas dalam tutorial lanjutan selanjutnya.

Pertanyaan Umum Demo Slot

Tambahkan izin eksekusi dengan chmod. Bentuk simbolik chmod +x script.sh memberikan izin eksekusi kepada semua orang, sedangkan chmod u+x script.sh hanya memberikan izin kepada pemiliknya. Setelah itu, Anda dapat menjalankan skrip secara langsung dengan ./script.sh dari direktori tempat skrip tersebut berada.

umask mengatur izin default yang dihapus dari file dan direktori yang baru dibuat. File dimulai dari 666 dan direktori dari 777, kemudian nilai umask akan berkurang.tracted. Nilai umask umum 022 memberikan izin untuk file sebesar 644 dan direktori sebesar 755. Jalankan umask untuk melihat nilai saat ini.

Ini adalah bit izin khusus. setuid menjalankan program dengan hak pemiliknya, setgid menjalankannya dengan hak grup atau membuat file baru mewarisi grup direktori, dan bit sticky hanya mengizinkan pemilik file untuk menghapusnya di dalam direktori bersama seperti /tmp.

Ya. Hanya pengguna root, atau pengguna yang menjalankan sudo, yang dapat mengubah pemilik file dengan chown. Pemilik biasa dapat menyerahkan file mereka ke grup tempat mereka berada, tetapi menetapkannya kembali ke pengguna lain memerlukan hak akses root karena alasan keamanan.

Kesalahan itu berarti Anda tidak memiliki hak untuk mengubah file tersebut. Untuk menjalankan chmod, Anda harus memiliki file tersebut atau menjadi root; untuk menjalankan chown, Anda umumnya membutuhkan root. Tambahkan sudo di depan perintah, atau beralih ke pemilik file, dan coba lagi.

Gunakan opsi -R rekursif. chmod -R 755 myfolder menerapkan izin ke folder dan setiap file serta subfolder di dalamnya, dan chown -R user:group myfolder melakukan hal yang sama untuk kepemilikan. Gunakan -R dengan hati-hati, karena ini memengaruhi setiap item di bawah folder tersebut.

Asisten AI dapat menerjemahkan permintaan seperti "jadikan skrip ini hanya dapat dieksekusi oleh saya" menjadi perintah chmod yang tepat, menjelaskan arti mode seperti 755, dan memperingatkan tentang pengaturan berisiko seperti 777. Alat keamanan pembelajaran mesin juga menandai file yang izinnya terlihat terlalu terbuka dan berbahaya.

Ya. Kopilot GitHub Anda dapat menyarankan perintah chmod, chown, dan chgrp dari komentar singkat yang menjelaskan izin atau pemilik yang Anda inginkan, dan menyelesaikannya saat Anda mengetik. RevPeriksa setiap saran sebelum menjalankannya, karena perubahan izin dan kepemilikan memengaruhi keamanan.

Ringkaslah postingan ini dengan: