Controlling Access to Files (Mengontrol Akses ke File)
Tags: ramadhanbersamaredhat, tkjadb
Published: 2024-03-30 03:20:55

#Izin Sistem File Linux

*File permissions* mengontrol akses ke file. Izin file Linux sederhana namun fleksibel, mudah dipahami dan diterapkan, namun masih mampu menangani sebagian besar kasus izin normal dengan mudah.

File memiliki tiga kategori pengguna yang izinnya berlaku. File tersebut dimiliki oleh pengguna, biasanya orang yang membuat file tersebut. File juga dimiliki oleh satu grup, biasanya grup utama pengguna yang membuat file, namun hal ini dapat diubah. Izin yang berbeda dapat diatur untuk pengguna pemilik, grup pemilik, dan untuk semua pengguna lain di sistem yang bukan pengguna atau anggota grup pemilik.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8m7vqvgh5qeq56ltt39.png)

Pengguna biasanya memiliki izin baca dan eksekusi pada direktori hanya baca sehingga mereka dapat membuat daftar direktori dan memiliki akses penuh hanya baca ke kontennya. Jika pengguna hanya memiliki akses baca pada direktori, nama file di dalamnya dapat dicantumkan, namun tidak ada informasi lain, termasuk izin atau stempel waktu, yang tersedia, juga tidak dapat diakses. Jika pengguna hanya memiliki akses eksekusi pada suatu direktori, mereka tidak dapat mencantumkan nama file dalam direktori tersebut. Jika mereka mengetahui nama file yang mereka punya izin untuk membacanya, mereka dapat mengakses konten file tersebut dari luar direktori dengan secara eksplisit menentukan nama file relatif.Sebuah file dapat dihapus oleh siapa saja yang memiliki kepemilikan atau izin menulis pada direktori tempat file tersebut berada, terlepas dari kepemilikan atau izin pada file itu sendiri.

**Catatan**

Izin file Linux bekerja secara berbeda dari sistem izin yang digunakan oleh sistem file NTFS untuk Microsoft Windows.

Di Linux, izin hanya berlaku untuk file atau direktori tempat izin tersebut ditetapkan. Artinya, izin pada suatu direktori tidak diwarisi secara otomatis oleh subdirektori dan file di dalamnya. Namun, izin pada direktori dapat memblokir akses ke konten direktori tergantung pada seberapa ketat izin tersebut.

Izin membaca pada direktori di Linux kira-kira setara dengan Daftar isi folder di Windows.

Izin menulis pada direktori di Linux setara dengan Memodifikasi di Windows; itu menyiratkan kemampuan untuk menghapus file dan subdirektori. Di Linux, jika write dan sticky bit keduanya diatur pada sebuah direktori, maka hanya pemilik file atau subdirektori yang dapat menghapusnya, serupa dengan perilaku izin Windows Write.

Pengguna root Linux memiliki izin Kontrol Penuh Windows yang setara pada semua file. Namun, akses root mungkin dibatasi oleh kebijakan SELinux sistem menggunakan konteks keamanan proses dan file. SELinux akan dibahas pada kursus selanjutnya.

**Melihat Izin dan Kepemilikan File dan Direktori**

Opsi **-l** perintah **ls** menunjukkan informasi rinci tentang izin dan kepemilikan:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jsqxkjqv8zz35kgevttj.png)

Gunakan **-d** opsi untuk menampilkan informasi rinci tentang direktori itu sendiri, dan bukan isinya.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q46fnqtp7k1laa382duq.png)

Karakter pertama dari daftar panjang adalah jenis file, diartikan seperti ini:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rm8su8k3hv5a42gdj55v.png)

Sembilan karakter berikutnya adalah izin file. Ini ada dalam tiga set tiga karakter: izin yang berlaku untuk pengguna yang memiliki file, grup yang memiliki file, dan semua pengguna lainnya. Jika kumpulan menunjukkan *rwx*, kategori tersebut memiliki ketiga izin, baca, tulis, dan jalankan. Jika ada huruf yang diganti dengan *-*, maka kategori tersebut tidak mempunyai izin tersebut.

Setelah penghitungan tautan, nama depan menentukan pengguna pemilik file, dan nama kedua grup pemilik file.

Jadi pada contoh di atas, izin untuk pengguna *student* ditentukan oleh kumpulan tiga karakter pertama. Pengguna *student* telah membaca dan menulis *test*, tetapi belum mengeksekusi.

Grup *student* ditentukan oleh kumpulan tiga karakter kedua: ia juga telah membaca dan menulis *test*, tetapi tidak mengeksekusi.

Izin pengguna lain ditentukan oleh rangkaian tiga karakter ketiga: mereka hanya memiliki izin membaca di *test*.

Kumpulan izin yang paling spesifik berlaku. Jadi jika pengguna *student* memiliki izin yang berbeda dari grup *student*, dan pengguna *student* juga merupakan anggota grup tersebut, maka izin penggunalah yang berlaku.

**Contoh Efek Izin**

Contoh berikut akan membantu mengilustrasikan bagaimana izin file berinteraksi. Untuk contoh ini, kami memiliki empat pengguna dengan keanggotaan grup berikut:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yve6abcfpp0sy115fbzq.png)

Pengguna tersebut akan bekerja dengan file di *dir* direktori. Ini adalah daftar panjang file-file di direktori itu:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yhuewsrjiv6wh9jut769.png)

Opsi *-a* menunjukkan izin file tersembunyi, termasuk file khusus yang digunakan untuk mewakili direktori dan induknya. Dalam contoh ini, **.** mencerminkan izin dirdirinya sendiri, dan **..** izin direktori induknya.

Apa izinnya *rfile1*? Pengguna yang memiliki file ( *database1* ) telah membaca dan menulis tetapi tidak mengeksekusi. Grup yang memiliki file ( *consultant1* ) telah membaca dan menulis tetapi tidak mengeksekusi. Semua pengguna lain telah membaca tetapi belum menulis atau mengeksekusi.

**Mengubah Izin File dan Direktori**

Perintah yang digunakan untuk mengubah izin dari baris perintah adalah **chmod**, yang berarti "ubah mode" (izin juga disebut *mode* dari sebuah file). Perintah **chmod** mengambil instruksi izin diikuti dengan daftar file atau direktori yang akan diubah. Instruksi izin dapat dikeluarkan baik secara simbolis (metode simbolik) atau secara numerik (metode numerik).

**Mengubah Izin dengan Metode Simbolik**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xkpsx4qs1pdg3jhoccd.png)
- *Who* adalah u, g, o, a(untuk pengguna, grup, lainnya, semua)
- *What* adalah +, -, =(untuk menambah, menghapus, mengatur persisnya)
- *Which* adalah r, w, x(untuk membaca, menulis, mengeksekusi)

Itu *simbolis* metode mengubah izin file menggunakan huruf untuk mewakili kelompok izin yang berbeda: **u** untuk pengguna, **g** untuk grup, **o**untuk lainnya, dan **a** untuk semua.

Dengan metode simbolis, tidak perlu menetapkan grup izin baru secara lengkap. Sebagai gantinya, Anda dapat mengubah satu atau beberapa izin yang ada. Gunakan **+** atau **-** untuk menambah atau menghapus izin, atau gunakan **=** untuk mengganti seluruh kumpulan izin.

Izinnya sendiri diwakili oleh satu huruf: **r** untuk membaca, **w** untuk menulis, dan **x** untuk mengeksekusi. Saat menggunakan **chmod** untuk mengubah izin dengan metode simbolis, menggunakan huruf kapital **X**sebagai tanda izin akan menambahkan izin eksekusi hanya jika file tersebut adalah direktori atau sudah memiliki set eksekusi untuk pengguna, grup, atau lainnya.

**Mengubah Izin dengan Metode Numerik**

Pada contoh di bawah, karakter **#** mewakili sebuah digit.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guzlusdbe61oyw8r7d4s.png)

- Setiap digit mewakili izin untuk tingkat akses: pengguna, grup, lainnya.

- Digit dihitung dengan menjumlahkan angka untuk setiap izin yang ingin Anda tambahkan, 4 untuk membaca, 2 untuk menulis, dan 1 untuk mengeksekusi.

Menggunakan *numerik* metode, izin diwakili oleh 3 digit (atau 4 digit, saat mengatur izin lanjutan) *oktal* nomor. Satu digit oktal dapat mewakili nilai apa pun dari 0-7.

Dalam representasi izin 3 digit oktal (numerik), setiap digit mewakili satu tingkat akses, dari kiri ke kanan: pengguna, grup, dan lainnya. Untuk menentukan setiap digit:

1. Mulailah dengan 0.
2. Jika izin baca harus ada untuk tingkat akses ini, tambahkan 4.
3. Jika izin menulis harus ada, tambahkan 2.
4. Jika izin eksekusi harus ada, tambahkan 1.

Periksa izinnya *-rwxr-x---*. Untuk pengguna, *rwx* dihitung sebagai 4+2+1=7. Untuk grup, *r-x* dihitung sebagai 4+0+1=5, dan untuk pengguna lain, *---* diwakili dengan 0. Jika ketiganya digabungkan, representasi numerik dari izin tersebut adalah 750.

Perhitungan ini juga dapat dilakukan dalam arah sebaliknya. Lihatlah izin 640. Untuk izin pengguna, 6 mewakili baca (4) dan tulis (2), yang ditampilkan sebagai *rw-*. Untuk bagian grup, 4 hanya mencakup baca (4) dan ditampilkan sebagai *r--*. Angka 0 untuk other tidak memberikan izin ( ---) dan kumpulan izin simbolis terakhir untuk file ini adalah *-rw-r-----*.

**Mengelola Izin Default dan Akses File Tujuan**

**Special Permissions**

*Special Permissions* merupakan tipe izin keempat selain pengguna dasar, grup, dan tipe lainnya. Sesuai dengan namanya, izin ini memberikan fitur terkait akses tambahan melebihi apa yang diizinkan oleh jenis izin dasar. Bagian ini merinci dampak izin khusus, yang dirangkum dalam tabel di bawah.

**Pengaruh Special Permissions pada File dan Direktori**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v9c9d4vyzpmre508fnwx.png)