Tutorial Mengubah permission & ownership di Linux menggunakan chmod + chown
Bagi pengguna Linux, sangat krusial untuk mengatur izin dan kepemilikan file dengan tepat, terutama pada server yang dikelola oleh beberapa administrator. Selain untuk menjaga keamanan, ini juga akan memastikan server berfungsi dengan optimal.
Untuk tujuan tersebut, Anda dapat memanfaatkan perintah chmod dan chown. Jika Anda belum familiar dengan cara mengubah izin di Linux menggunakan perintah-perintah tersebut, jangan khawatir. Kami akan membahas ini dalam artikel ini, serta memberikan penjelasan mengenai pengelolaan kepemilikan di Linux. Mari kita lihat lebih lanjut di bawah ini!
Memahami Cara Mengubah Permission Linux
Anda dapat menetapkan perintah yang sama untuk mengubah permission file dan folder di Linux. Berikut adalah beberapa perintah yang paling umum digunakan:
- chmod +rwx item – menambah izin untuk read, write, dan execute.
- chmod -rwx item – menghapus seluruh hak akses dari sebuah item.
- chmod +r item – memberikan izin baca pada sebuah item.
- chmod -x item – melarang semua pengguna untuk mengeksekusi item tersebut.
Selanjutnya, Anda dapat mengatur berbagai pengaturan izin untuk setiap pengguna. Kami akan menjelaskan lebih lanjut mengenai hal ini di bawah ini. Penting! Jika Anda mendapatkan pesan kesalahan terkait hak akses saat mencoba mengubah izin atau kepemilikan, cobalah menambahkan kata sudo di depan perintah yang digunakan.
Model permission Linux
1. Pengguna dan grupz
Sistem operasi Linux memiliki tiga kategori yang dapat Anda berikan izin dan ownership:
- owner – Individu yang memiliki file atau direktori.
- group – sekumpulan pengguna yang berada dalam kelompok yang sama.
- others – semua pengguna yang bukan merupakan pemilik atau anggota grup.
2. Jenis izin
Di Linux, file dan direktori memiliki tiga tipe permission, masing-masing diwakilkan oleh inisial. Berikut adalah penjelasannya:
- read (r) – memberikan hak kepada pengguna untuk mengakses konten file atau direktori.
- write (w) – memberikan izin kepada pengguna untuk melakukan perubahan terhadap isi file. Untuk sebuah dorektori, pengguna dapat membuat, menghapus, dan memindahkan file di dalamnya.
- execute (x) – memungkinkan pengguna untuk mengeksekusi file. Jika ditetapkan pada folder, ini berarti pengguna dapat membukanya dan mengakses ke semua data di dalamnya.
Melihat izin saat ini
Dalam pengelolaan hak akses di Linux, penting untuk menggunakan perintah tertentu. Pertama, akses antarmuka baris perintah pada sistem Anda, seperti Terminal untuk perangkat lokal atau SSH untuk sistem jarak jauh seperti VPS. Atau, jika Anda menggunakan VPS dari Hostinger, Anda dapat dengan mudah mengakses CLI sistem menggunakan Terminal browser. Cukup buka menu manajemen VPS Anda di hPanel, lalu klik tombol di sudut kanan atas.
Untuk memeriksa hak akses file dan direktori yang Anda buka, jalankan perintah berikut:
ls -l
Jika Anda hanya perlu memeriksa item tertentu, silakan gunakan perintah berikut ini:
ls -l itemname
Anda akan mendapatkan hasil yang terlihat seperti ini:
drwxrwxrwx 2 user1 admins 4096 Sep 12 04:33 config
Hasil ini menyajikan beragam informasi. Namun, karena kita ingin mengevaluasi izin dan kepemilikan, mari kita fokus pada user1, admins, config, dan drwxrw-r-. Tempat user1 menunjukkan pemilik item, sedangkan admin adalah grup Linux tempat pengguna tersebut berada. Nama item terletak di bagian akhir, yaitu konfigurasi. Rangkaian drwxrw-r- memberi wawasan mengenai pengaturan izin item tersebut.
Berikut adalah penjelasannya:
- d – simbol pertama dalam rangkaian menunjukkan tipe item, yang bisa berupa direktori (d), file biasa (–), atau link simbolik (l).
- rwx – bagian kedua menandakan hak akses pemilik. Dalam contoh di atas, kita melihat rwx, yang berarti pengguna1 memiliki kemampuan untuk membaca, menulis, dan menjalankan direktori.
- rw– – bagian ketiga mengindikasikan izin grup terhadap item tersebut. Tanda hubung (–) menunjukkan bahwa grup tidak memiliki izin, sehingga anggota grup admin hanya dapat mengakses direktori itu untuk membaca dan menulis.
- r- – bagian keempat menunjukkan hak akses bagi pengguna lainnya. Karena hanya tersedia r dan dua tanda hubung dalam rangkaian di atas, orang lain hanya diizinkan untuk membaca direktori tersebut.
Penting! Format dan urutan penamaan izin akan senantiasa konsisten.
Mengubah izin dengan chmod
Untuk mengubah izin item, gunakan perintah Linux chmod. Berikut ini adalah syntax dari perintah tersebut:
chmod [option] [mode] [file_folder_name]
- Option merupakan flag tambahan yang mengubah cara kerja perintah chmod. Anda dapat menemukan daftar lengkapnya di halaman panduan chmod.
- Mode adalah izin baru untuk file atau folder yang dimaksud, yang bisa Anda tulis menggunakan notasi simbolik atau numerik. Keduanya beroperasi dengan cara yang serupa, namun memiliki fungsi spesifik yang akan kami uraikan di bagian berikutnya.
Mode symbolic
Metode symbolic dalam chmod menggunakan satu karakter yang mewakili kelas pengguna, izin, dan operasi. Berikut daftarnya:
Simbol | Definisi |
u | Pemilik |
g | Grup |
o | Lainnya |
a | Semua kelas pengguna (pemilik, grup, dan lainnya) |
+ | Menambahkan izin |
– | Menghapus izin |
= | Mengatur izin ke nilai yang ditentukan |
r, w, x | Izin |
Mode symbolic bersifat lebih fleksibel dan lebih deskriptif. Melalui mode ini, Anda dapat dengan mudah melakukan modifikasi izin, karena Anda memiliki kebebasan untuk mengubah hak akses tertentu pada kategori pengguna. Perhatikan contoh berikut ini:
chmod u+wx,g-x,o=r script.sh
Mari kita jelaskan simbol-simbol ini untuk memahami cara kerjanya:
- u+wx – menambah (+) hak akses bagi pemilik file (u) untuk melakukan penulisan (w) dan eksekusi (x) pada file tersebut.
- g-x – menghapus (–) hak akses grup (g) untuk melakukan eksekusi (x) pada file (g).
- o=r – menetapkan (=) hak akses bagi pengguna lain (o) pada file ini, agar hanya bisa dibaca (r).
Sebagai contoh, jika hak akses awal file adalah -r-rwxrwx, maka hak akses yang baru akan menjadi -rwxrw-r-.
Mode numeric (octal)
Mode numerik memanfaatkan tiga digit angka untuk memberikan izin baru. Digit pertama menunjukkan hak akses untuk pemilik, digit kedua menunjukkan hak akses untuk grup pemilik, dan digit ketiga menunjukkan hak akses untuk pengguna lain. Berikut adalah angka-angka dan penjelasannya:
Nomor | Definisi |
4 | Izin membaca |
2 | Izin menulis |
1 | Jalankan izin |
0 | Tidak ada izin |
Untuk mengatur beberapa izin, cukup tambahkan angka-angkanya.
Sebagai ilustrasi, 3 (1+2) akan memberikan hak akses untuk mengeksekusi dan menulis item, sedangkan 7 (1+2+4) memberikan hak akses penuh pada item tersebut. Sebagai contoh, perintah berikut ini akan mengubah izin file script. sh menjadi -rwxrw-r-:
chmod 764 script.sh
Penggunaan Notasi Numerik lebih simpel dibandingkan dengan simbolik. Namun, notasi ini tidak terlalu fleksibel karena Anda tidak dapat menambah atau mengurangi izin tertentu. Oleh sebab itu, notasi ini lebih manjur untuk menerapkan pengaturan tertentu dengan cepat.
Sebagai contoh, seorang pemilik bisa membaca dan menulis pada suatu item, tetapi jika Anda ingin mengaturnya agar bisa dieksekusi, dengan notasi simbolik Anda bisa menambah izin menggunakan u+x. Sementara dengan notasi numerik, Anda perlu menambahkan hak istimewa yang sudah eksis menggunakan 7, bukan hanya 1.
Perubahan permission rekursif
Opsi -R pada chmod mengaktifkan mode rekursif yang memungkinkan Anda untuk menerapkan izin baru pada folder beserta seluruh isinya hanya dengan satu perintah. Sebagai contoh, bayangkan kita memiliki folder skrip yang mencakup subdirektori subscript1 dan subscript2, serta beberapa file . sh. Struktur direktori adalah sebagai berikut:
script/ │ ├── subscript/ │ └── script1.sh │ ├──subscript2/ │ ├── script2.sh │ └── script3.sh
Dengan menggunakan chmod rekursif, kita bisa mengganti izin semua item di atas hanya dengan memodifikasi folder script seperti ini:
chmod -R 777 script
Mengganti ownership dengan chown dan chgrp
Saat Anda menciptakan sebuah item di Linux, secara otomatis Anda akan menjadi pemilik item tersebut. Jika Anda tergabung dalam sebuah grup, seluruh anggota grup lainnya akan menerima hak akses yang sama. Anda dapat mengubah kepemilikan menggunakan perintah chown atau chgrp. Namun, chown lebih banyak diterapkan, yang berguna untuk mengalihkan kepemilikan kepada pengguna dan grup. Berikut adalah syntax perintahnya:
1. chown [options] [user:group] [item]
Sebagai contoh, jika Anda ingin mengalihkan kepemilikan file script. sh kepada johndoe, yang merupakan anggota dari grup admin, gunakan perintah ini:
2. chown johndoe:admins script.sh
Untuk memberikan kepemilikan kepada pengguna yang baru dan tetap mempertahankan grup yang ada, cukup hapus nama grup seperti ini:
3. chown johndoe script.sh
Dengan cara yang sama, hapus nama pengguna jika Anda ingin mengalihkan kepemilikan item ke grup yang berbeda. Namun, pastikan untuk memulai nama grup dengan tanda titik dua (:) seperti ini:
- chown :admins script.sh
Perintah chown juga dapat digunakan dengan opsi -R untuk mengubah kepemilikan item secara rekursif:
- chmod -R johndoe:admins scriptfolder
Berbeda dengan chown, chgrp hanya memungkinkan Anda untuk mengalihkan kepemilikan item ke grup yang lain. Berikut adalah contoh perintahnya:
- chgrp admins script.sh
Permission bit khusus
Selain izin baca, tulis, dan eksekusi, Linux juga memiliki izin tambahan yang memungkinkan pengelolaan item-item di sistem Anda dengan cara yang lebih mendetail. Mari kita lihat apa saja izin tersebut serta bagaimana cara mengaturnya
Setuid dan setgid
Izin Set user ID (setuid) memberi Anda kemampuan untuk menjalankan file sebagai pemiliknya, bukan sebagai pengguna yang sedang aktif. Anda bisa menambahkannya dengan menggunakan karakter s dalam notasi simbolik dengan cara berikut:
- chmod u+s script.sh
Misalnya, jika root merupakan pemilik file script. sh, maka file tersebut akan dieksekusi sebagai root meskipun Anda masuk sebagai pengguna yang berbeda. Konfigurasi ini sangat berguna untuk menjalankan program sebagai pengguna tertentu, khususnya dalam proses otomatisasi.
Penting! Pengguna yang ingin menjalankan program harus memiliki izin eksekusi untuk file tersebut. Anda dapat memberikan izin tersebut dengan mengubah grup atau kelas pengguna lainnya.
Setelah menambahkan permission s, hak akses pemilik file akan menjadi rws. Pada dasarnya, hak ini sama dengan rwx, namun menunjukkan bahwa setuid aktif.
Izin setuid yang benar akan terlihat seperti ini:
-rwsr-xr-x
Set group ID (setgid) mirip dengan setuid, berfungsi untuk menjalankan file menggunakan izin grup terkait. Untuk memberikannya, gunakan perintah berikut:
chmod g+s script.sh
Seperti setuid, akun yang menjalankan file harus memiliki izin eksekusi sebagai pemilik atau pengguna lain. Berikut contoh permission setgid:
-rwxr-sr-x
Ketika Anda membuat file baru di dalam sebuah folder menggunakan setgid, grup yang terkait akan memiliki permission ownership atas file tersebut. Biasanya, grup Anda akan menjadi pemilik file baru tersebut.
Sticky bit
Secara default, semua pengguna yang memiliki izin tulis pada sebuah folder bisa mengganti nama dan menghapus file di dalamnya. Perilaku ini berisiko karena mereka bisa secara tidak sengaja menghapus item penting. Nah, sticky bit membantu mencegah hal ini terjadi, dengan melarang pengguna untuk menghapus atau mengganti nama file kecuali mereka adalah pemiliknya.
Permission write juga tidak dicabut ketika menggunakan sticky bit, jadi pengguna tetap bisa mengedit isi file. Untuk mengaktifkan sticky bit pada folder, tambahkan izin t menggunakan mode symbolic chmod seperti ini:
- chmod +t folder
Permission t akan menggantikan hak eksekusi pengguna lain. Berikut adalah contoh izin folder dengan sticky bit yang diaktifkan:
- drwxrwxrwt
Anda juga bisa menambahkan sticky bit secara rekursif ke semua subfolder dan file di dalamnya dengan menambahkan opsi -R seperti ini:
- chmod -R +t folder
Kesimpulan
Mengelola izin dan kepemilikan item yang sesuai sangat krusial untuk memastikan keamanan dan kinerja server. Dalam lingkungan Linux, Anda bisa menetapkan hak akses baca, tulis, dan eksekusi untuk tiga kategori pengguna: pemilik, grup, dan orang lain. Untuk memodifikasi izin di Linux, Anda perlu menggunakan chmod diikuti dengan pengaturan dan item yang ingin diubah.
Sebagai pengaturan, Anda dapat menggunakan notasi simbolik jika menginginkan metode yang lebih fleksibel, atau notasi numerik jika memerlukan instruksi yang lebih langsung. Sementara itu, gunakan chown untuk mengubah kepemilikan item kepada pengguna atau grup lain. Untuk mengubah kepemilikan grup, Anda juga bisa menggunakan perintah chgrp.
Di samping itu, Linux memiliki izin khusus yang tersedia. Misalnya, setuid dan setgid memungkinkan Anda mengeksekusi file sebagai pemilik atau grup yang bersangkutan. Anda juga dapat menambahkannya menggunakan perintah chmod.