Bagaimana Izin File Linux Bekerja?
Jika Anda telah menggunakan Linux untuk beberapa waktu (dan bahkan OS X) Anda mungkin akan menemukan kesalahan "izin". Tapi apa sebenarnya mereka, dan mengapa itu perlu atau berguna? Mari kita melihat ke dalam.
Izin Pengguna
Kembali pada hari itu, komputer adalah mesin besar yang sangat mahal. Untuk memaksimalkannya, banyak terminal komputer dihubungkan yang memungkinkan banyak pengguna untuk menjalankan bisnis mereka secara bersamaan. Pemrosesan dan penyimpanan data dilakukan pada mesin, sedangkan terminal itu sendiri tidak lebih dari sekadar cara melihat dan memasukkan data. Jika Anda memikirkannya, cukup banyak bagaimana kita mengakses data di "cloud"; lihat sistem Cloud MP3 Amazon, Gmail, dan Dropbox, dan Anda akan melihat bahwa meskipun perubahan dapat dilakukan secara lokal, semuanya disimpan dari jarak jauh.
(Gambar: Terminal "bodoh" Zenith Z-19; kredit: ajmexico)
Agar ini berfungsi, pengguna individu perlu memiliki akun. Mereka perlu memiliki bagian area penyimpanan yang dialokasikan untuk mereka, dan mereka harus diizinkan untuk menjalankan perintah dan program. Setiap orang mendapatkan "izin pengguna" tertentu, yang menentukan apa yang dapat dan tidak dapat mereka lakukan, di mana pada sistem mereka memiliki dan tidak memiliki akses, dan file siapa yang dapat dan tidak dapat mereka modifikasi. Setiap pengguna juga ditempatkan dalam berbagai grup, yang memberikan atau membatasi akses lebih lanjut.
Akses File
Dalam dunia multi-pengguna yang aneh ini, kami telah menetapkan batasan apa yang dapat dilakukan pengguna. Tetapi bagaimana dengan apa yang mereka akses? Ya, setiap file memiliki seperangkat izin dan pemilik. Penunjukan pemilik, biasanya terikat ketika file dibuat, menyatakan pengguna mana yang menjadi miliknya, dan hanya pengguna yang dapat mengubah izin aksesnya.
Di dunia Linux, izin dibagi menjadi tiga kategori: baca, tulis, dan eksekusi. Akses "Baca" memungkinkan seseorang untuk melihat konten file, akses "tulis" memungkinkan seseorang untuk memodifikasi konten file, dan "mengeksekusi" memungkinkan seseorang untuk menjalankan serangkaian instruksi, seperti skrip atau program. Masing-masing kategori ini diterapkan ke kelas yang berbeda: pengguna, grup, dan dunia. “Pengguna” berarti pemilik, “grup” berarti setiap pengguna yang berada dalam grup yang sama dengan pemilik, dan “dunia” berarti siapa saja dan semua orang.
Folder juga dapat dibatasi dengan izin ini. Anda dapat, misalnya, mengizinkan orang lain di grup Anda untuk melihat direktori dan file di folder rumah Anda, tetapi tidak ada orang di luar grup Anda. Anda mungkin ingin membatasi akses "tulis" hanya untuk diri Anda sendiri, kecuali jika Anda sedang mengerjakan proyek bersama. Anda juga dapat membuat direktori bersama yang memungkinkan siapa saja untuk melihat dan memodifikasi file di folder itu.
Mengubah Izin di Ubuntu
GUI
Untuk mengubah izin file yang Anda miliki di Ubuntu, cukup klik kanan file tersebut dan buka "Properties."
Anda dapat mengubah apakah Pemilik, Grup, atau Lainnya dapat membaca dan menulis, hanya membaca, atau tidak melakukan apa pun. Anda juga dapat mencentang kotak untuk memungkinkan eksekusi file, dan ini akan memungkinkannya untuk Pemilik, Grup, dan Lainnya secara bersamaan.
Garis komando
Anda juga dapat melakukan ini melalui baris perintah. Pergi ke direktori yang memiliki file di dalamnya dan ketik perintah berikut untuk melihat semua file dalam daftar:
ls -al
Di sebelah setiap file dan direktori, Anda akan melihat bagian khusus yang menguraikan izin yang dimilikinya. Ini terlihat seperti ini:
-rwxrw-r-
Itu r singkatan dari "read," the w singkatan "menulis," dan x singkatan dari "mengeksekusi." Direktori akan dimulai dengan "d" dan bukan "-". Anda juga akan melihat bahwa ada 10 spasi yang menyimpan nilai. Anda dapat mengabaikan yang pertama, dan kemudian ada 3 set 3. Set pertama adalah untuk pemilik, set kedua adalah untuk grup, dan set terakhir adalah untuk dunia.
Untuk mengubah izin file atau direktori, mari kita lihat bentuk dasar dari perintah chmod.
chmod [kelas] [operator] [izin] file
File chmod [ugoa] [+ atau -] [rwx]
Ini mungkin terlihat rumit pada awalnya, tapi percayalah, ini cukup mudah. Pertama, mari kita lihat kelas-kelasnya:
- u: Ini untuk pemilik.
- g: Ini untuk grup.
- o: Ini untuk semua yang lain.
- a: Ini akan mengubah izin untuk semua hal di atas.
Selanjutnya, operator:
- +: Tanda plus akan menambahkan izin yang mengikuti.
- -: Tanda minus akan menghapus izin yang mengikuti.
Masih dengan saya? Dan bagian terakhir sama dengan ketika kami memeriksa izin file:
- r: Mengizinkan akses baca.
- w: Mengizinkan akses tulis.
- x: Mengizinkan eksekusi.
Sekarang, mari kita kumpulkan. Katakanlah kita memiliki file bernama "todo.txt" yang memiliki izin berikut:
-rw-rw-r-
Artinya, pemilik dan grup dapat membaca dan menulis, dan dunia hanya dapat membaca. Kami ingin mengubah izin untuk ini:
-rwxr-
Artinya, pemilik memiliki izin penuh, dan grup dapat membaca. Kita dapat melakukan ini dalam 3 langkah. Pertama, kami akan menambahkan izin eksekusi untuk pengguna.
chmod u + x todo.txt
Kemudian, kami akan menghapus izin menulis untuk grup.
chmod g-w todo.txt
Terakhir, kami akan menghapus izin baca untuk semua pengguna lain.
chmod o-r todo.txt
Kami juga dapat menggabungkan ini menjadi satu perintah, seperti:
chmod u + x, g-w, o-r todo.txt
Anda dapat melihat bahwa setiap bagian dipisahkan oleh koma dan tidak ada spasi.
Berikut ini beberapa izin yang bermanfaat:
- -rwxr-xr-x: Pemilik memiliki izin penuh, grup dan pengguna lain dapat membaca konten file dan mengeksekusi.
- -rwxr-r-: Pemilik memiliki izin penuh, grup, dan pengguna lain hanya dapat membaca file (berguna jika Anda tidak keberatan orang lain melihat file Anda.
- -rwx-: Pemilik memiliki izin penuh, yang lain tidak memiliki (berguna untuk skrip pribadi).
- -rw-rw--: Pemilik dan grup dapat membaca dan menulis (berguna untuk kolaborasi dengan anggota grup).
- -rw-r-r-: Pemilik dapat membaca dan menulis, grup dan pengguna lain hanya dapat membaca file (berguna untuk menyimpan file pribadi di jaringan bersama).
- -rw--: Pemilik dapat membaca dan menulis, yang lainnya tidak memilikinya (berguna untuk menyimpan file pribadi).
Ada beberapa hal lain yang dapat Anda lakukan dengan chmod - seperti setuid dan setgid - tetapi mereka sedikit mendalam dan sebagian besar pengguna tetap tidak perlu menggunakannya.
Root atau Super-User dan File Sistem
Saat ini, kami tidak selalu menjalankan sistem yang memiliki banyak pengguna. Mengapa kita masih khawatir tentang izin?
Nah, Unix dan turunannya - Linux, OS X, antara lain - juga membedakan antara hal-hal yang dijalankan oleh pengguna, hal-hal yang dijalankan oleh administrator atau dengan hak istimewa admin, dan hal-hal yang dijalankan oleh sistem itu sendiri. Dengan demikian, hal-hal yang tidak terpisahkan untuk sistem memerlukan hak admin untuk diubah atau diakses. Dengan cara ini, Anda tidak mengacaukan apapun secara tidak sengaja.
Di Ubuntu, untuk membuat perubahan pada file sistem Anda menggunakan "sudo" atau "gksudo" untuk mendapatkan yang setara dengan hak istimewa Administrator. Di distro lain, Anda beralih ke "root" atau "pengguna super" yang secara efektif melakukan hal yang sama hingga Anda logout.
Perlu diketahui bahwa dalam kedua keadaan ini, mengubah izin file dapat menyebabkan program tidak berfungsi, mengubah kepemilikan file secara tidak sengaja ke pengguna root (bukan pemilik), dan membuat sistem kurang aman (dengan memberikan lebih banyak izin). Karena itu, disarankan Anda tidak mengubah izin untuk file - terutama file sistem - kecuali jika diperlukan atau Anda tahu apa yang Anda lakukan.
Izin file tersedia untuk menyediakan sistem keamanan dasar di antara pengguna. Mempelajari cara kerjanya dapat membantu Anda mengatur berbagi dasar di lingkungan multi-pengguna, melindungi file "publik", dan memberi Anda petunjuk kapan ada masalah dengan kepemilikan file sistem.
Anda pikir Anda bisa menjelaskan lebih mudah? Punya koreksi? Ingin mengenang masa lalu? Beristirahatlah dan berikan komentar Anda di komentar.