GNU/Linux >> Belajar Linux >  >> Linux

Izin dan Kepemilikan File Linux Dijelaskan dengan Contoh

Secara desain, Linux adalah sistem operasi multi-pengguna. Dalam sistem perusahaan, akan ada banyak pengguna yang mengakses sistem yang sama. Tetapi jika ada pengguna yang dapat mengakses dan mengubah semua file milik pengguna lain atau file sistem, ini tentu akan menjadi risiko keamanan.

Inilah sebabnya mengapa UNIX dan dengan demikian Linux (Linux adalah sistem mirip Unix) memiliki ukuran keamanan bawaan. Ini memastikan bahwa file atau direktori dapat diakses, dimodifikasi, atau dijalankan hanya oleh pengguna yang diinginkan.

File mana yang akan diakses oleh pengguna mana yang ditentukan oleh dua faktor di Linux:

  • Kepemilikan file
  • Izin file

Memahami kepemilikan dan izin file sangat penting bagi pengguna Linux. Saya akan menjelaskan istilah-istilah ini secara rinci di sini.

Kepemilikan file di Linux

Catatan:Saya mungkin menggunakan istilah file di sini tetapi juga berlaku untuk direktori. Saya kira Anda tahu bahwa direktori adalah file.

Setiap file dan direktori di Linux memiliki tiga jenis pemilik:

Pengguna

Pengguna adalah pemilik file. Saat Anda membuat file, Anda menjadi pemilik file tersebut. Kepemilikan juga dapat diubah, tetapi kita akan melihatnya nanti.

Grup

Setiap pengguna adalah bagian dari grup tertentu. Grup terdiri dari beberapa pengguna dan ini adalah salah satu cara untuk mengelola pengguna di lingkungan multi-pengguna.

Misalnya, jika Anda memiliki tim pengembang, tim QA, dan tim sysadmin yang mengakses sistem yang sama, Anda harus membuat grup terpisah untuk mereka. Dengan cara ini, Anda dapat mengelola file dan keamanan sistem secara efektif. Ini menghemat waktu karena alih-alih menambahkan izin secara manual untuk setiap pengguna, Anda cukup menambahkan mereka ke grup dan mengubah izin untuk grup. Anda akan melihat cara melakukannya nanti di artikel ini.

Bahkan jika Anda adalah satu-satunya pengguna sistem, Anda akan tetap menjadi bagian dari banyak grup. Distribusi seperti Ubuntu juga membuat grup dengan nama yang sama dengan nama pengguna.

Jalankan perintah grup untuk melihat grup pengguna yang Anda ikuti.

Lainnya

'Lainnya' dapat dianggap sebagai grup super dengan semua pengguna di sistem. Pada dasarnya, siapa pun yang memiliki akses ke sistem termasuk dalam grup ini.

Dengan kata lain, 'Pengguna' adalah satu pengguna, Grup adalah kumpulan pengguna dan Lainnya terdiri dari semua pengguna di sistem.

Izin file di Linux

Setiap file dan direktori di Linux memiliki tiga izin berikut untuk ketiga jenis pemilik:

Izin untuk file

  • Baca – Dapat melihat atau menyalin isi file
  • Tulis – Dapat mengubah konten file
  • Execute – Dapat menjalankan file (jika dapat dieksekusi)

Izin untuk direktori

  • Baca – Dapat membuat daftar semua file dan menyalin file dari direktori
  • Tulis – Dapat menambah atau menghapus file ke dalam direktori (perlu izin eksekusi juga)
  • Eksekusi – Dapat masuk ke direktori

Memahami izin dan kepemilikan file di Linux

Sekarang setelah Anda mengetahui terminologi dasar izin dan kepemilikan file, saatnya untuk melihatnya beraksi.

Anda dapat menggunakan 'perintah stat' atau 'perintah ls' untuk memeriksa izin file.

Jika Anda menggunakan perintah ls dengan opsi -l pada file, Anda akan melihat output seperti ini:

-rwxrw-r-- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Mari saya jelaskan output ini dengan gambar:

Biarkan saya menjelaskan lebih lanjut seluruh output secara rinci:

  • Jenis file :Menunjukkan jenis file. d berarti direktori, – berarti file biasa, l berarti tautan simbolik.
  • Izin :Bidang ini menunjukkan izin yang ditetapkan pada file. Saya akan menjelaskannya secara detail di bagian selanjutnya.
  • Jumlah tautan keras :Menunjukkan apakah file memiliki tautan keras. Jumlah default adalah satu.
  • Pengguna :Pengguna yang memiliki file.
  • Grup :Grup yang memiliki akses ke file ini. Hanya satu grup yang dapat menjadi pemilik file dalam satu waktu.
  • Ukuran file :Ukuran file dalam byte.
  • Waktu modifikasi :Tanggal dan waktu file terakhir diubah.
  • Nama file :Jelas, nama file atau direktori.

Sekarang setelah Anda memahami output perintah ls -l, mari fokus pada bagian izin file.

Pada perintah di atas, Anda melihat izin file seperti ini dalam format sembilan digit :

rwxrw-r--

Setiap huruf menunjukkan izin tertentu:

  • r :Izin membaca
  • w :Izin menulis
  • x :Jalankan izin
  • – :Tidak ada izin yang disetel

Izin selalu dalam urutan baca, tulis, dan eksekusi, mis., rwx. Kemudian izin ini disetel untuk ketiga jenis pemilik (lihat bagian kepemilikan) dalam urutan Pengguna, Grup, dan Lainnya.

Gambar ini akan menjelaskan semuanya dengan lebih baik:

Jadi, jika Anda melihat gambar di atas sekarang, Anda dapat mengatakan hal-hal berikut tentang izin file:

  • File telah membaca, menulis, dan menjalankan izin untuk pemilik Pengguna. Tapi siapa yang menggunakan pemilik file ini? Anda memiliki info ini di output ls -l (yaitu pengguna abhi).
  • File memiliki izin baca dan tulis untuk Grup tetapi tidak dieksekusi. Grup yang mana? Anda memiliki info grup di output dari perintah ls -l (yaitu grup itsfoss).
  • File hanya memiliki izin baca untuk Lainnya yaitu semua orang yang memiliki akses ke sistem. Anda tidak perlu tahu yang lain karena 'lain' berarti semua pengguna.

Sekarang jika Anda melihat seluruh perintah ls -l sekali lagi, Anda dapat membaca hak akses dan kepemilikan file bersama-sama.

-rwxrw-r-- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

File agatha.txt dimiliki oleh pengguna abhi dan abhi memiliki izin membaca, menulis, dan mengeksekusi. Semua anggota grup istfoss memiliki akses baca dan tulis ke file ini sementara yang lain hanya memiliki akses baca ke file ini.

Catatan:Pengguna root memiliki kekuatan super dan biasanya, ia telah membaca, menulis, dan mengeksekusi izin ke semua file, bahkan jika Anda tidak melihatnya di izin file.

Seorang pengguna tunggal dapat menjadi anggota dari beberapa grup tetapi hanya grup utama pengguna yang merupakan pemilik grup dari file yang dibuat oleh pengguna. Grup utama pengguna dapat ditemukan menggunakan perintah id seperti id -gn <username> . Biarkan nama pengguna kosong jika Anda mencoba menemukan grup utama Anda sendiri.

Sekarang setelah Anda mengetahui cara mengetahui izin pada file, mari kita lihat bagaimana Anda dapat mengubah izin dan kepemilikan file.

Ubah izin file di Linux

Anda dapat menggunakan perintah chmod untuk mengubah hak akses pada file di Linux.

Izin dulu disebut mode akses dan karenanya chmod adalah kependekan dari mengubah mode akses .

Ada dua cara untuk menggunakan perintah chmod:

  • Mode mutlak
  • Mode simbolik

Menggunakan chmod dalam mode absolut

Dalam mode absolut, izin direpresentasikan dalam bentuk numerik (tepatnya sistem oktal). Dalam sistem ini, setiap izin file diwakili oleh angka.

  • r (baca) =4
  • w (tulis) =2
  • x (eksekusi) =1
  • – (tanpa izin) =0

Dengan nilai numerik ini, Anda dapat menggabungkannya dan dengan demikian satu angka dapat digunakan untuk mewakili seluruh rangkaian izin.

Nomor Izin
0
1 –x
2 -w-
3 (yaitu 2+1) -wx
4 r–
5 (yaitu 4+1) r-x
6 (yaitu 4+2) rw-
7 (yaitu 4+2+1) rwx

Bisakah Anda menebak izin file dalam angka pada file agatha.txt dalam contoh kita sejauh ini? Itu benar, ini 764.

Sekarang setelah Anda mengetahui angka yang mewakili izin mana, mari kita lihat cara mengubah izin file menggunakan pengetahuan ini.

Misalkan Anda ingin mengubah izin file di agatha.txt agar semua orang bisa membaca dan menulis tetapi tidak ada yang bisa mengeksekusinya? Dalam hal ini, Anda dapat menggunakan perintah chmod seperti ini:

chmod 666 agatha.txt

Jika Anda mendaftar agatha.txt sekarang, Anda akan melihat bahwa izinnya telah diubah.

-rw-rw-rw- 1 abhishek abhishek 457 Aug 10 11:55 agatha.txt

Menggunakan chmod dalam mode simbolik

Masalah dengan mode absolut adalah Anda harus selalu memberikan tiga nomor untuk ketiga pemilik meskipun Anda ingin mengubah  setel izin hanya untuk satu pemilik.

Di sinilah Anda dapat menggunakan mode simbolik dengan perintah chmod.

Dalam mode simbolik, pemilik dilambangkan dengan simbol berikut:

  • u =pemilik pengguna
  • g =pemilik grup
  • o =lainnya
  • a =semua (pengguna + grup + lainnya)

Mode simbolis menggunakan operator matematika untuk melakukan perubahan izin:

  • + untuk menambahkan izin
  • – untuk menghapus izin
  • =untuk mengganti izin yang ada dengan nilai baru

Sekarang setelah Anda tahu, mari kita lihat cara menggunakan perintah chmod dalam mode simbolis.

Pada contoh sebelumnya, jika Anda ingin menambahkan izin eksekusi untuk pemilik grup, Anda dapat menggunakan perintah chmod seperti ini:

chmod g+x agatha.txt

Jika Anda melihat izin pada file ini sekarang, Anda akan melihat bahwa izin eksekusi sekarang telah ditambahkan:

-rw-rwxrw- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Anda juga dapat menggabungkan beberapa perubahan izin dalam satu perintah. Misalkan Anda ingin menghapus izin baca dan tulis dan tambahkan izin eksekusi untuk Lainnya. Anda juga ingin menambahkan izin eksekusi untuk pemilik Pengguna. Anda dapat melakukan semuanya dengan satu perintah:

chmod o-rw+x,u+x agatha.txt

Izin yang dihasilkan akan seperti ini:

-rwxrwx--x 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Jika Anda ingin mengubah izin untuk ketiga jenis pengguna secara bersamaan, Anda dapat menggunakannya dengan cara berikut:

chmod a-x agatha.txt

Ini akan menghapus izin eksekusi untuk semua orang.

-rw-rw---- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Beberapa orang menganggap mengonversi izin file dari satu mode ke mode lainnya merupakan pekerjaan yang melelahkan. Inilah mengapa saya membuat alat kecil ini yang memungkinkan Anda menghitung izin file Linux dalam berbagai mode online.

Ubah kepemilikan file di Linux

Untuk mengubah kepemilikan suatu file, Anda dapat menggunakan perintah chown. Anda mungkin dengan mudah menebak bahwa chown adalah singkatan dari change owner.

Anda dapat mengubah pemilik pengguna file dengan cara berikut:

chown <new_user_name> <filename>

Jika Anda ingin mengubah pengguna dan juga grup, Anda dapat menggunakan perintah chown seperti ini:

chown <new_user_name>:<new_user_group> <filename>

Jika Anda hanya ingin mengubah grup, Anda dapat menggunakan perintah chown dengan cara ini:

chown :<new_user_group> <filename>

atau gunakan perintah chgrp yang khusus digunakan untuk mengubah pemilik grup suatu file atau direktori. Anda dapat menebak bahwa chgrp adalah singkatan dari change group.

chgrp <new_user_group> <filename>

Dalam contoh kita sejauh ini, jika Anda ingin mengubah pemilik dan grup pengguna menjadi root, Anda dapat menggunakan perintah chown seperti ini:

sudo chown root:root agatha.txt

Ini akan mengubah kepemilikan file menjadi root untuk pengguna dan grup.

-rw-rw---- 1 root root 457 Aug 10 11:55 agatha.txt

Perhatikan bahwa saya harus menggunakan Sudo dengan chown? Itu karena root terlibat di sini dan untuk menangani root, Anda memerlukan hak pengguna super.

Kiat :Dua grup tidak dapat memiliki file yang sama.

Kiat Bonus:Apakah ada prioritas dalam izin file?

Pikirkan situasi, di mana pemilik pengguna tidak memiliki izin apa pun, grup memiliki izin baca sementara yang lain memiliki izin baca dan tulis.

----r--rw- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Sekarang, jika pengguna abhi mencoba membaca file menggunakan perintah cat or less, apakah dia bisa? Jawabannya tidak karena tidak memiliki izin baca.

Tetapi pengguna abhi adalah bagian dari grup itsfoss dan grup tersebut memiliki akses baca. Persetan! lainnya telah membaca dan menulis izin. Ini berarti semua orang (termasuk pengguna abhi) dapat membaca dan menulis file, bukan? Salah!

Di Linux, prioritas diambil dari pengguna dan kemudian grup dan kemudian ke yang lain. Sistem Linux memeriksa siapa yang memulai proses (cat atau kurang dalam contoh kami). Jika pengguna yang memulai proses juga adalah pengguna pemilik file, bit izin pengguna akan disetel.

Jika pemilik file tidak memulai proses, maka sistem Linux akan memeriksa grup. Jika pengguna yang memulai proses berada dalam grup yang sama dengan grup pemilik file, bit izin grup akan disetel.

Jika pemilik proses ini bahkan tidak berada dalam grup sebagai pemilik grup file, maka bit izin lainnya akan disetel.

Apa selanjutnya?

Saya harap Anda menyukai artikel ini dan sekarang Anda memiliki pemahaman yang lebih baik tentang cara kerja izin file di Linux.

Ada beberapa izin file lanjutan seperti SUID, GUID, dan sticky bit yang dapat Anda pelajari selanjutnya, jika Anda mau.

Jika Anda memiliki pertanyaan atau saran atau jika Anda hanya ingin mengucapkan terima kasih, silakan tinggalkan komentar di bawah. Jika Anda menyukai artikel ini, silakan bagikan di media sosial atau berbagai forum. Ini akan membantu kami dan juga pengguna Linux lainnya.


Linux
  1. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  2. Urutkan Perintah di Linux dengan Contoh

  3. Periksa izin file Linux dengan ls

  1. Perintah Head and Tail di Linux Dijelaskan dengan Contoh

  2. Perintah Traceroute Linux, Dijelaskan dengan Contoh

  3. Izin File di Linux dengan Contoh

  1. Perintah potong Linux Dijelaskan dengan 6 Contoh

  2. Perintah Zip dan Unzip Linux dengan Contoh

  3. Perintah cksum Linux dijelaskan untuk pemula (dengan contoh)