Perintah Chmod di Linux digunakan untuk mengubah atau menetapkan izin pada file dan direktori. Di sistem Linux / Unix, aksesibilitas ke file dan direktori ditentukan oleh kepemilikan dan izin file. Pada artikel sebelumnya, kita melihat bagaimana mengelola kepemilikan file &direktori menggunakan perintah chown. Dalam tutorial ini, kita melihat perintah chmod.
Perintah chmod, kependekan dari change mode digunakan untuk mengatur hak akses file dan direktori dan menentukan siapa yang dapat mengaksesnya. Sekarang mari selami dan jelajahi sifat izin file &direktori dan bagaimana mereka dapat dimodifikasi.
Izin Linux
Untuk lebih memahami cara kerja perintah chmod, sebaiknya kita mempelajari model izin file Linux.
Di Linux, kami memiliki 3 jenis izin file:izin baca (r), tulis (w), dan eksekusi (x). Izin ini menentukan pengguna mana yang dapat membaca, menulis, atau mengeksekusi file. Anda dapat menetapkan izin ini menggunakan teks atau notasi oktal (numerik) seperti yang akan kita bahas nanti dalam tutorial ini.
File dan direktori dapat dimiliki oleh pemilik file (u), grup (g) atau orang lain (o)
- u – Pemilik file
- g – Grup
- o – Lainnya
Izin file terdaftar menggunakan perintah ls -l. Bendera -l mencantumkan izin file. Izin diatur dalam tiga set:pengguna, grup, dan lainnya masing-masing
Untuk mendapatkan pemahaman yang lebih baik tentang izin file, kami akan membuat daftar isi direktori kami seperti yang ditunjukkan:
$ ls -l
Mulai dari paling kiri, karakter/simbol pertama menunjukkan jenis file. Tanda hubung (-) menunjukkan bahwa file tersebut adalah file biasa. Simbol d menunjukkan bahwa itu adalah direktori. Simbol l menunjukkan bahwa itu adalah tautan simbolis.
Sembilan karakter yang tersisa tersegmentasi menjadi 3 triplet masing-masing membawa tiga simbol r(baca), w(tulis) dan x(eksekusi). Seperti yang ditunjukkan sebelumnya, segmen pertama menunjukkan izin pemilik, segmen kedua menunjukkan izin grup, dan bagian terakhir menentukan izin yang dimiliki pengguna lain pada file atau direktori.
Dari output, kita dapat melihat bahwa kita memiliki 2 file (hello.txt &report.zip) dan satu direktori.
Mari kita periksa file pertama
-rw-rw-r-- 1 linuxtechi linuxtechi 35 Aug 17 15:42 hello.txt
Untuk file pertama, izin -rw-rw-r– menyiratkan bahwa pemilik file memiliki izin baca dan tulis, grup juga memiliki izin baca &tulis, sementara pengguna lain hanya memiliki izin baca. Izin yang sama juga berlaku untuk file terkompresi report.zip.
Mari kita lihat izin direktori:
drwxrwxr-x 2 linuxtechi linuxtechi 4096 Aug 17 15:43 sales
Kita dapat melihat bahwa pemilik direktori dan grup memiliki semua izin (baca, tulis, dan eksekusi) sementara pengguna lain hanya memiliki izin membaca dan mengeksekusi.
Simbol tanda hubung tiga — menunjukkan tidak ada izin yang diberikan untuk pemilik file, grup, atau pengguna lain.
Menggunakan perintah chmod untuk mengatur izin file &direktori
Setelah melihat izin file dan cara melihatnya, mari kita fokus pada cara mengubah izin ini.
Perintah chmod di Linux digunakan untuk mengubah izin file dan direktori menggunakan notasi teks (simbolik) atau numerik (oktal). Dibutuhkan sintaks berikut:
$ chmod [OPTIONS] nama file MODE
Hanya pengguna root atau pengguna biasa dengan hak sudo yang dapat mengubah izin file atau direktori. Anda dapat melewatkan lebih dari satu file atau direktori yang dipisahkan oleh spasi dalam sintaks perintah.
Sekarang mari kita mempelajari dan melihat berbagai contoh perintah chmod.
Contoh 1) Tetapkan izin menggunakan notasi numerik
Saat menyetel izin menggunakan gaya/notasi numerik, gunakan sintaks yang ditunjukkan di bawah ini:
$ sudo chmod [OPTIONS] nama file numerik_nilai
Nilai numerik dapat mengambil 3 atau 4 angka. Namun, dalam kebanyakan kasus, 3 angka digunakan. Izin baca, tulis, dan eksekusi memiliki nilai berikut:
- izin baca => 4
- izin menulis => 2
- jalankan izin => 1
Jumlah total nilai izin yaitu membaca, menulis, dan mengeksekusi di masing-masing dari tiga segmen memperhitungkan izin lengkap dari file atau direktori yang diberikan.
Apa yang kami maksud dengan ini?
Mari kita asumsikan pemilik telah membaca, menulis, dan mengeksekusi izin, grup memiliki izin membaca dan mengeksekusi dan pengguna lain hanya memiliki izin baca, ini dapat dipecah sebagai berikut:
- u : rwx =7
- g : r-x =5
- o : r– =4
Oleh karena itu, kami sampai pada nilai 754 sebagai nilai numerik untuk izin file dari file yang diberikan.
Untuk menetapkan izin baca, tulis, dan eksekusi kepada pemilik, dan izin baca hanya untuk grup dan pengguna lain, jalankan perintah:
$ chmod 744 devops.txt
Untuk menetapkan semua izin ke pemilik file, baca dan jalankan izin ke grup dan tidak ada izin sama sekali ke pengguna lain, jalankan:
$ chmod 750 coders.txt
Untuk menetapkan semua izin ke pemilik file, izin baca dan tulis ke grup dan pengguna lain jalankan perintah:
$ chmod 755 sysadmin.txt
Contoh 2) Menetapkan izin secara rekursif ke direktori
Saat menetapkan izin ke direktori, gunakan tanda -R untuk menetapkan izin secara rekursif ke file dan subfoldernya. Misalnya:
$ chmod 755 -R directory_name
$ chmod 755 -R /home/linuxtechi/data
Contoh 3) Tetapkan izin menggunakan notasi teks
Cara lain untuk menetapkan izin adalah dengan menggunakan notasi teks. Dalam metode ini, perintah chmod mengambil flag atau simbol yang mewakili pemilik, grup, orang lain atau semua pengguna ( u, g , dan o) dalam sintaks.
Metode ini tidak semudah metode sebelumnya dan harus berhati-hati untuk menghindari pemberian izin yang salah.
Begini tampilan sintaksnya
$ chmod [OPTIONS] [ u g o a ] [ – + =] [ r, w, x ] file
Mari kita pecahkan ini.
Grup parameter pertama [ u g o a] menentukan kategori pengguna yang izinnya akan berubah
- u :pengguna
- g :grup
- o :lainnya
- a :semua ( Ini termasuk semua yang di atas )
Jika kumpulan ini dihilangkan, maka opsi defaultnya adalah opsi.
Kumpulan opsi kedua – opsi operator [ – + =] – menentukan apakah izin akan ditambahkan atau dihapus dari kategori pengguna. Opsi hapus
- – :Bendera menghapus izin file dari pengguna tertentu.
- + :Ini menambahkan/menambahkan izin ke pengguna tertentu.
- = :Tindakan ini memberikan izin berbeda kepada pengguna tertentu dan menghapus izin sebelumnya dari segmen pengguna.
Mari kita lihat beberapa contohnya:
Contoh 4) Tetapkan izin baca ke file
$ chmod o=r nama file
Perintah di atas menetapkan pengguna lain yang dilambangkan dengan simbol 'o' izin baca hanya ke file dan menghapus izin sebelumnya yang ditetapkan ke segmen 'lainnya'. Ambil file1.txt yang memiliki izin berikut
Untuk menetapkan izin baca segmen 'lainnya ( o )', jalankan saja
$ sudo chmod o=r file1.txt
Dari output, kita dapat melihat bahwa segmen 'lainnya' telah diberikan izin baca sementara pada saat yang sama telah kehilangan izin eksekusi. Ini menyiratkan bahwa =operator memberikan izin baru sementara pada saat yang sama menghapus izin sebelumnya.
Contoh 5) Tetapkan Izin Eksekusi ke Pemilik File dan Grup
$ sudo chmod ug+x nama file
Perintah di atas menambahkan izin eksekusi ke pemilik dan grup file. Menggunakan file kami, ini menjadi:
$ sudo chmod ug+x file1.txt
Contoh 6) Tetapkan izin yang berbeda untuk file, grup, dan lainnya
$ sudo chmod u=rwx,g=rw,o=r nama file
Perintah di atas memberikan semua izin kepada pemilik file, izin baca dan tulis ke grup, dan hanya izin baca ke pengguna lain.
CATATAN: Jika tidak ada izin yang ditentukan setelah operator =, maka semua izin dari segmen pengguna akan dihapus.
Contoh 7) Hapus semua izin untuk pengguna lain
$ sudo chmod o=nama file
Perintah di atas menghapus semua izin dari segmen pengguna 'lainnya' untuk file yang ditentukan.
Perintah tersebut memiliki efek yang sama dengan perintah di bawah ini:
$ sudo chmod o-rwx nama file
Contoh 8) Tetapkan izin menggunakan file referensi
Cara lain yang praktis dan nyaman untuk menetapkan izin file adalah menggunakan file referensi. Dalam metode ini, Anda menggunakan opsi –reference=ref_file untuk mengatur izin file agar sama dengan file referensi lainnya. Gunakan sintaks di bawah ini
$ sudo chmod –reference=ref_file nama file
Misalnya, untuk mengatur hak akses file file2.txt agar sama dengan file1.txt jalankan perintah:
$ sudo chmod --reference=file1.txt file2.txt
File referensi adalah file1.txt sedangkan file2.txt adalah file yang akan mengambil izin file untuk file referensi.
Contoh 9) Tetapkan izin eksekusi hanya untuk direktori
Mari kita asumsikan kita memiliki direktori yang memiliki file dan sub-direktori dan kita ingin menetapkan izin eksekusi hanya pada direktori tanpa menyentuh file. Jadi, ini dapat dicapai dengan menggunakan perintah chmod berikut,
$ chmod a+X *
Jika Anda perhatikan baik-baik, kami telah menggunakan huruf kapital X untuk izin eksekusi, perintah di atas akan menetapkan izin eksekusi pada semua direktori direktori kerja kami saat ini.
Kesimpulan
Ini menarik tirai pada topik kita. Kami melihat perintah chmod dan melihat berbagai contoh di mana perintah tersebut dapat digunakan untuk mengubah hak akses file.