GNU/Linux >> Belajar Linux >  >> Linux

Konsep izin file Linux

Artikel ini mengeksplorasi konsep inti dari izin file Linux®. Ini dimulai dengan dasar-dasar dan beralih ke topik yang lebih maju. Ini juga memberikan beberapa contoh praktis. Untuk mendapatkan pengenalan tentang izin file dan mempelajari cara melihat izin file, lihat Memeriksa izin file Linux dengan ls.

Akses file

Dalam lingkungan multipengguna seperti Linux, penting untuk mengontrol pengguna mana yang dapat memodifikasi atau menghapus berbagai file di sistem. Kontrol ini bukan hanya tindakan pencegahan keamanan yang diperlukan—ini mencegah kecelakaan bencana. Jika pengguna hanya dapat memengaruhi jumlah file minimum, kemungkinan kesalahan ketik perintah, atau salah ketik dalam skrip, akan menghancurkan file penting atau mempublikasikan informasi rahasia ke situs web publik akan lebih kecil.

Sebelum menjelajahi bagaimana untuk mengelola akses file, Anda harus terlebih dahulu memahami konsep kepemilikan file dan izin file. Perhatikan bahwa kepemilikan dan izin juga berlaku untuk direktori karena direktori pada dasarnya adalah jenis file khusus sejauh menyangkut sistem file. Meskipun ada beberapa perbedaan untuk direktori, konsep dasarnya sama, sehingga sebagian besar konsep atau perintah izin file yang dibahas dalam artikel ini juga berlaku untuk direktori.

Dasar-dasar kepemilikan

Setiap file dan direktori pada sistem file Linux memiliki pemilik. Pemilik file dapat menetapkan izin untuk file tersebut. Jika pengguna mom123 memiliki filelawndarts , Anda perlu izin dari mom123 untuk bermain dengan rerumputan . Dia mungkin memberi Anda akses, menolak Anda mengaksesnya sama sekali, atau hanya membiarkan Anda melihatrerumputan tanpa bermain-main dengannya.

Pengguna yang memiliki file dapat mengatur atau mengubah izinnya, menentukan siapa (termasuk bahkan pemiliknya) yang dapat membaca file, menjalankannya, mengubahnya, atau menghapusnya. Ini adalah hak istimewa yang sederhana, tetapi memiliki dampak yang luas.

Grup file

Meskipun setiap file memiliki pengguna yang memilikinya dan dapat mengontrol izinnya, setiap file juga termasuk dalam grup . Grup menjelaskan sekumpulan pengguna yang berbagi izin file yang mungkin berbeda dari pengguna biasa. Seorang pengguna dapat menjadi bagian dari lebih dari satu grup, tetapi sebuah file hanya dapat berada dalam satu grup.

Kepemilikan grup adalah cara praktis untuk memungkinkan pemilik file menetapkan satu set izin ke file untuk orang yang tidak dikenalnya ("Anda dapat melihat, tetapi tidak dapat menyentuh.") dan kumpulan izin lainnya untuk orang yang dia percayai dengan file tersebut (“Anda bisa melihat dan menyentuh. Tapi tidak ada orang lain yang bisa.”).

Mengubah kepemilikan

Pengguna biasa dapat mengontrol izin file tetapi tidak dapat menetapkan kepemilikan kepada pengguna lain. Untuk mengubah kepemilikan, Anda perlu menggunakan superuser, yang biasa dikenal sebagai root .

Jika Anda tidak masuk sebagai root , Anda harus menggunakan sudo perintah untuk menggunakan hak akses root untuk mengubah pemilik file.

Sistem file lebih fleksibel dalam mengubah grup file. Anda masih dapat menggunakan hak akses root untuk mengubah grup, tetapi jika pemilik file termasuk dalam grup target, pemilik file juga dapat mengalihkan file ke grup target.

Perintah chown

Perintah utama yang digunakan untuk mengubah pemilik atau grup file adalah chown . Sintaks yang paling umum digunakan dengan chown ditunjukkan pada contoh berikut:

chown user:group file1 file2 file3

user dalam contoh sebelumnya adalah pengguna yang ingin Anda miliki filenya, dan group adalah grup tempat Anda ingin file tersebut berada. Tanda titik dua memisahkan dua elemen perintah. Mengikuti pasangan pengguna dan grup, Anda membuat daftar satu atau lebih file yang terpengaruh oleh perubahan.

Catatan :chown juga menerima titik di tempat titik dua saat memisahkan nama pengguna dan grup. Penggunaan periode sudah usang tetapi masih didukung, dan Anda mungkin melihatnya di skrip atau dokumentasi lama. Anda harus menggunakan titik dua, jika memungkinkan.

Anda dapat menghilangkan pengguna atau grup tetapi tidak keduanya. Jika Anda hanya ingin mengubah pemilik file, Anda dapat menggunakan sintaks berikut:

chown user file1

Jika Anda memiliki nama pengguna yang menyertakan titik dan Anda tidak ingin mengubah grup, sertakan titik dua setelah pengguna seperti yang ditunjukkan pada contoh berikut:

chown john.smith: file1

Jika Anda ingin menggunakan chown untuk hanya mengubah grup, pastikan untuk menyertakan titik dua sebelum nama grup, meskipun Anda tidak akan menentukan pengguna seperti yang ditunjukkan pada contoh berikut:

chown :group file1
Perintah chgrp

Jika Anda memilih untuk tidak menggunakan titik dua saat Anda hanya ingin mengubah grup untuk file, Anda dapat menggunakan chgrp seperti yang ditunjukkan pada contoh berikut:

chgrp group file1

Ini berfungsi seperti chown :group file1 , tetapi lebih mudah untuk mengetik dan membaca.

Opsi -R

Jika Anda ingin mengubah pemilik direktori tertentu beserta file dan subdirektorinya, gunakan -R opsi untuk membuat perubahan rekursif seperti yang ditunjukkan pada contoh berikut:

chown -R user:group directoryname

-R opsi bekerja dengan chgrp demikian juga. Dengan kedua perintah tersebut, perubahan akan diterapkan terlebih dahulu ke direktori induk dan kemudian mengulangi semua yang ada di dalam direktori (termasuk subdirektori).

Tautan simbolik (symlink) memerlukan penanganan khusus untuk chown atau chgrp operasi. symlink adalah alias untuk file lain, mirip dengan pintasan di Microsoft® Windows®. Daripada menerapkan perubahan ke symlink itu sendiri, sistem file menerapkan perubahan ke target symlink. Jadi, jika symlink link menunjuk ke file thefile.txt , perhatikan perintah berikut:

chown user:group link

Saat perintah itu dijalankan, sistem akan mengubah pemilik dan grup untuk file target file.txt . Kepemilikan symlink, tautan tetap tidak berubah.

Jika Anda ingin mengubah pemilik atau grup symlink, gunakan -h bendera untukchown dan chgrp , seperti yang ditunjukkan pada contoh berikut:

chown -h user:group link

Dasar-dasar izin

Ada dua bagian izin:apa yang boleh dilakukan seseorang dengan file, dan siapa seseorang itu bisa.

Apa yang diizinkan

Ada tiga kategori tindakan pengguna untuk file dan direktori:baca, tulis, dan eksekusi.

Baca

Izin baca untuk file mengontrol siapa yang dapat membuka atau melihat konten file.

Izin baca untuk direktori mengontrol apakah Anda dapat melihat daftar file dalam direktori atau tidak, namun izin baca tidak cukup. Anda juga perlu menjalankan izin agar direktori dapat melihat daftar file.

Tulis

Izin menulis untuk file mengontrol apakah Anda dapat mengubah konten file atau tidak.

Izin menulis untuk direktori mengontrol apakah Anda dapat menambahkan, menghapus, atau mengganti nama file di direktori itu atau tidak. Untuk menggunakan izin menulis di direktori, Anda juga perlu menjalankan izin untuk direktori tersebut.

Catatan :Hanya izin menulis pada direktori terlampir yang memengaruhi apakah Anda dapat mengganti nama atau menghapus file atau tidak. Beberapa operasi, seperti rm , lakukan pemeriksaan dan cegah Anda menghapus file yang bukan milik Anda. Tidak ada yang bisa menghentikan program lain yang tidak memiliki pemeriksaan serupa di dalamnya dari menghapus file yang tidak dapat Anda tulis dan bukan milik Anda.

Jalankan

Izin eksekusi untuk file memungkinkan Anda menjalankan file itu dari baris perintah. Untuk menjalankan perintah apa pun (chown , ls , rm , dan seterusnya), Anda harus memiliki izin eksekusi untuk file yang mewakili perintah itu. Jika Anda mencoba menjalankan perintah dan mendapatkan permission denied kesalahan, Anda tidak memiliki izin eksekusi.

Izin eksekusi untuk direktori memungkinkan Anda melakukan operasi di direktori itu atau mengubah direktori kerja Anda (cd ) ke direktori itu.

Bahkan jika Anda memiliki izin membaca untuk sebuah direktori, Anda sebenarnya tidak dapat menjalankan ls perintah di direktori itu untuk melihat daftar file kecuali Anda juga memiliki izin eksekusi. Jika tidak, ketika Anda mencoba menjalankan ls , Anda diblokir sebelum sistem bahkan dapat memeriksa izin baca. Untuk memengaruhi apa pun di dalam direktori, Anda harus memiliki izin eksekusi untuk direktori tersebut.

Siapa yang bisa melakukan apa

Sekarang setelah Anda mengetahui izin apa yang tersedia, pertimbangkan kategori yang digunakan untuk mengontrol siapa yang terpengaruh oleh izin tersebut. Kategorinya adalah pengguna, grup, dan lainnya.

Kategori pengguna

pengguna kategori izin mengacu pada izin yang berlaku untuk pemilik file. Ini adalah satu-satunya kategori yang secara khusus menargetkan hanya satu pengguna karena hanya satu pengguna yang dapat memiliki file tersebut.

Kategori grup

grup kategori mengacu pada pengguna yang berada dalam grup yang sama dengan file. Jika file ada di grup devs , dan file tersebut memiliki izin menulis untuk grupnya, yang berarti bahwa pengguna di pengembang grup memiliki akses tulis ke file.

Kategori lainnya

lainnya kategori adalah menangkap semua untuk semua orang yang tidak termasuk dalam kategori pengguna atau grup. Anda menggunakan kategori ini untuk menentukan apakah pengguna lain dapat membaca file, mengeditnya, atau menjalankannya sebagai perintah.

Prioritas kategori

Penting untuk dicatat bahwa kategori izin diterapkan di pengguna pesanan, grup, lainnya. Kategori izin pertama yang ditemukan sistem untuk pengguna adalah satu-satunya yang berlaku. Jika Anda adalah pemilik file, izin Anda adalah apa pun yang ditetapkan untuk pengguna, sehingga sistem tidak akan repot memeriksa grup atau izin lain untuk file—sistem telah menemukan apa yang akan digunakan.

Konsep ini penting karena jika Anda menetapkan izin untuk orang lain, izin itu tidak diterapkan ke pemilik file atau siapa pun di grup file itu. Pengguna tersebut mendapatkan izin yang ditetapkan masing-masing di kategori pengguna atau grup.

Jika Anda tidak menyetel izin baca pada file untuk kategori grup tetapi menyetelnya untuk pengguna dan kategori lainnya, pengguna dalam grup file tersebut tidak memiliki akses baca, tetapi semua orang memilikinya.

Izin plus pengguna

Menggabungkan kepemilikan, kategori pengguna, dan izin menyediakan banyak opsi untuk mengontrol akses ke file dan direktori. Contoh berikut menunjukkan beberapa kemungkinan:

  • Jika Anda membuat file hanya-baca untuk kategori lain tetapi membiarkan pengguna dan kategori grup menulisnya, maka Anda dapat membuat grup editor untuk file sambil tetap mengizinkan pengguna lain untuk membacanya. Cukup tambahkan pengguna yang memiliki hak istimewa ke grup yang sama dengan file tersebut.

  • Jika Anda menetapkan izin baca untuk kategori pengguna dan menghapusnya dari grup dan kategori lainnya, Anda memastikan bahwa hanya pemilik file yang dapat melihat isinya.

  • Saat Anda mengatur izin eksekusi untuk file, Anda mengizinkannya dijalankan sebagai perintah. Jika Anda memiliki perintah yang hanya dapat dijalankan oleh pengguna tertentu, hapus izin eksekusi pada file untuk kategori lain.

Direktori mendapatkan perlakuan yang sama. Banyak direktori log sistem diatur untuk dibaca dan dijalankan hanya dengan kategori pengguna (seringkali root ) dan mengecualikan izin tersebut dari kategori lain untuk memastikan bahwa hanya seseorang dengan akses pengguna super yang dapat melihat log, apa pun izin yang ditetapkan pada file itu sendiri.

Mengapa root ada

Pengguna root ada untuk menyediakan akses dan kontrol. Pengguna root dapat mengubah kepemilikan dan izin file atau direktori apa pun di sistem. Pengguna tersebut juga dapat berinteraksi dengan file dan direktori seolah-olah memiliki izin paling permisif yang tersedia.

Bahkan jika pengguna tidak dapat membaca file tetapi kategori lain dapat, root dapat membacanya. Demikian pula, jika pengguna dapat membaca file tetapi yang lain tidak, root masih dapat membaca file tersebut. Tetapi jika tidak ada kategori yang memiliki izin baca (bukan pengguna, bukan grup, dan bukan lainnya), maka root juga tidak dapat membaca file tersebut.

Perilaku ini paling berguna untuk file yang tidak ingin Anda ubah secara tidak sengaja. Jika izin menulis dihapus dari semua kategori untuk sebuah file, maka bahkan root tidak dapat mengubah konten file tanpa mengubah izin tersebut.

Kesimpulan

Dengan pemahaman dasar tentang cara kerja izin file di Linux, Anda lebih siap untuk mengamankan file dari bahaya yang tidak disengaja atau berbahaya. Anda juga dapat mengawasi kesalahan yang disebabkan oleh izin file yang terbatas, seperti aplikasi yang tidak dapat menulis ke lognya (disebabkan karena tidak memiliki izin menulis untuk pengguna yang memiliki proses), atau server web yang tidak dapat melayani file html (disebabkan karena tidak memiliki izin baca, atau direktori tidak memiliki izin eksekusi).


Linux
  1. Linux – Semuanya Adalah File?

  2. Linux – Izin File Hanya Jalankan?

  3. Bagaimana cara menghapus izin pada direktori di Linux?

  1. Cara memindahkan file di Linux

  2. Daftar anggota grup di Linux

  3. Contoh Perintah Dasar "chmod" di Linux

  1. Memahami Izin File Linux

  2. Perintah Ekor Linux

  3. Perintah Sentuh Linux