Managing File System Permissions from the Command Line
Tags: ramadhanbersamaredhat
Published: 2024-03-30 13:56:36

**Mengubah Izin File dan Direktori**

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

**Mengubah Izin dengan Metode Simbolik**

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

- Who itu u, g, o, a (_for user (pengguna), group (grup), other (lainnya), all (semua)_)

- What itu +, -, = (_for add (menambah), remove (menghapus), set exactly (mengatur dengan cepat)_)

- Which itu r, w, x (_for read (membaca), write (menulis), execute (mengeksekusi)_)

Dengan metode _simbolik_, Anda tidak perlu menetapkan grup izin baru yang lengkap. Sebagai gantinya, Anda dapat mengubah satu atau beberapa izin yang sudah ada. Gunakan + atau - untuk menambah atau menghapus izin, atau gunakan = untuk mengganti seluruh set untuk sekelompok izin.

Perijinan itu sendiri diwakili oleh satu huruf: r untuk read, w untuk write, dan x untuk execute. Ketika menggunakan **chmod** untuk mengubah perijinan dengan metode simbolik, menggunakan huruf kapital X sebagai flag perijinan akan menambahkan perijinan eksekusi hanya jika berkas tersebut adalah direktori atau telah memiliki perijinan eksekusi untuk user, grup, atau lainnya.

**contoh**

- Hapus izin baca dan tulis untuk grup dan lainnya pada file1:

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

- Tambahkan izin eksekusi untuk semua orang di file2:

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

**Mengubah Izin dengan Metode Numerik**

Pada contoh di bawah ini, karakter **#** mewakili sebuah angka.

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

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

- Angka tersebut dihitung dengan menjumlahkan angka untuk setiap izin yang ingin Anda tambahkan, 4 untuk baca, 2 untuk tulis, dan 1 untuk eksekusi.

Dengan menggunakan metode _numerik_, izin diwakili oleh angka oktal 3 digit (atau 4 digit, saat mengatur izin tingkat lanjut). Satu digit oktal dapat mewakili nilai tunggal dari 0-7.

Dalam representasi izin oktal (numerik) 3 digit, 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 tulis harus ada, tambahkan 2.

4. Jika izin eksekusi harus ada, tambahkan 1.

Periksa izin -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, --- direpresentasikan dengan 0. Untuk grup, r-x dihitung sebagai 4+0+1=5, dan untuk pengguna lain, --- diwakili dengan 0. Dengan menggabungkan ketiganya, representasi numerik dari perizinan tersebut adalah 750.

Perhitungan ini juga dapat dilakukan dengan arah yang berlawanan. Lihatlah izin 640. Untuk hak akses pengguna, 6 mewakili baca (4) dan tulis (2), yang ditampilkan sebagai rw-. Untuk bagian grup, 4 hanya mencakup read (4) dan ditampilkan sebagai r--. Angka 0 untuk lainnya tidak memberikan hak akses (---) dan set terakhir dari hak akses simbolik untuk berkas ini adalah -rw-r-----.

Administrator yang berpengalaman sering menggunakan perijinan numerik karena lebih singkat untuk diketik dan diucapkan, namun tetap memberikan kontrol penuh atas semua perijinan.

**contoh**

- Mengatur izin baca dan tulis untuk pengguna, izin baca untuk grup dan lainnya, pada samplefile:

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

- Atur izin baca, tulis, dan eksekusi untuk pengguna, izin baca dan eksekusi untuk grup, dan tidak ada izin untuk yang lain pada sampledir:

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

**Mengubah Kepemilikan Pengguna atau Grup File dan Direktori**

File yang baru dibuat dimiliki oleh pengguna yang membuat file tersebut. Secara default, file baru memiliki kepemilikan grup yang merupakan grup utama pengguna yang membuat file tersebut. Pada Red Hat Enterprise Linux, grup utama pengguna biasanya berupa grup privat yang hanya beranggotakan pengguna tersebut. Untuk memberikan akses ke file berdasarkan keanggotaan grup, grup yang memiliki file mungkin perlu diubah.

Hanya root yang dapat mengubah pengguna yang memiliki file. Namun, kepemilikan grup dapat diatur oleh root atau oleh pemilik file. root dapat memberikan kepemilikan file ke grup mana pun, tetapi pengguna biasa dapat menjadikan grup sebagai pemilik file hanya jika mereka adalah anggota grup tersebut.

Kepemilikan berkas dapat diubah dengan perintah **chown** (ubah pemilik). Sebagai contoh, untuk memberikan kepemilikan file test_file kepada user student, gunakan perintah berikut:

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

**chown** dapat digunakan dengan opsi -R untuk mengubah secara rekursif kepemilikan seluruh pohon direktori. Perintah berikut ini memberikan kepemilikan test_dir dan semua file dan subdirektori di dalamnya kepada student:

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

Perintah **chown** juga dapat digunakan untuk mengubah kepemilikan grup pada sebuah berkas dengan mendahului nama grup dengan tanda titik dua (:). Sebagai contoh, perintah berikut ini mengubah kepemilikan grup dari direktori test_dir menjadi admin:

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

Perintah **chown** juga dapat digunakan untuk mengubah pemilik dan grup secara bersamaan dengan menggunakan sintaks owner:group. Sebagai contoh, untuk mengubah kepemilikan test_dir menjadi pengunjung dan grup menjadi tamu, gunakan perintah berikut:

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

Alih-alih menggunakan **chown**, beberapa pengguna mengubah kepemilikan grup dengan menggunakan perintah **chgrp**. Perintah ini bekerja seperti **chown**, kecuali bahwa perintah ini hanya digunakan untuk mengubah kepemilikan grup dan tanda titik dua (:) sebelum nama grup tidak diperlukan.