Jika Anda telah menggunakan Linux untuk beberapa waktu (dan bahkan OS X), Anda mungkin akan menemukan kesalahan "izin". Tapi apa sebenarnya itu, dan mengapa itu perlu atau berguna? Mari kita lihat ke dalam.
Izin Pengguna
Dulu, komputer adalah mesin besar yang harganya sangat mahal. Untuk memaksimalkannya, beberapa terminal komputer dihubungkan yang memungkinkan banyak pengguna menjalankan bisnis mereka secara bersamaan. Pemrosesan dan penyimpanan data dilakukan di mesin, sedangkan terminal itu sendiri hanya sekadar alat untuk melihat dan memasukkan data. Jika Anda memikirkannya, begitulah cara kami mengakses data di "cloud"; lihat sistem Amazon Cloud MP3, 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 harus memiliki akun. Mereka perlu memiliki bagian dari area penyimpanan yang dialokasikan untuk mereka, dan mereka harus diizinkan untuk menjalankan perintah dan program. Setiap orang mendapat "izin pengguna" khusus, yang menentukan apa yang mereka bisa dan tidak bisa lakukan, di mana pada sistem mereka memiliki dan tidak memiliki akses, dan file siapa yang bisa dan tidak bisa mereka modifikasi. Setiap pengguna juga ditempatkan ke dalam berbagai kelompok, yang memberikan atau membatasi akses lebih lanjut.
Akses File
Di dunia multi-pengguna yang aneh ini, kami telah menetapkan batasan tentang apa yang dapat dilakukan pengguna. Tapi bagaimana dengan apa yang mereka akses? Nah, setiap file memiliki satu set izin dan pemilik. Penunjukan pemilik, biasanya terikat saat file dibuat, mendeklarasikan pengguna mana, dan hanya pengguna tersebut yang dapat mengubah izin aksesnya.
Di dunia Linux, izin dipecah menjadi tiga kategori: baca, tulis, dan eksekusi. Akses "baca" memungkinkan seseorang untuk melihat konten file, akses "tulis" memungkinkan seseorang untuk mengubah 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 setiap orang.
Folder juga dapat dibatasi dengan izin ini. Anda dapat, misalnya, mengizinkan orang lain di grup Anda untuk melihat direktori dan file di folder utama Anda, tetapi tidak siapa pun di luar grup Anda. Anda mungkin ingin membatasi akses "tulis" hanya untuk diri Anda sendiri, kecuali Anda sedang mengerjakan proyek bersama atau semacamnya. Anda juga dapat membuat direktori bersama yang memungkinkan siapa saja untuk melihat dan mengubah file di folder itu.
Mengubah Izin di Ubuntu
GUI
Untuk mengubah izin file yang Anda miliki di Ubuntu, cukup klik kanan file tersebut dan masuk ke "Properties".
Anda dapat mengubah apakah Pemilik, Grup, atau Orang Lain dapat membaca dan menulis, hanya membaca, atau tidak melakukan apa pun. Anda juga dapat mencentang kotak untuk memungkinkan eksekusi file, dan ini akan mengaktifkannya untuk Pemilik, Grup, dan Lainnya secara bersamaan.
Garis komando
Anda juga dapat melakukan ini melalui baris perintah. Buka direktori yang memiliki file di dalamnya dan ketik perintah berikut untuk melihat semua file dalam daftar:
ls -al
Di samping 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", itu di singkatan dari "tulis", dan x singkatan dari "mengeksekusi". Direktori akan dimulai dengan "d", bukan "-". Anda juga akan melihat bahwa ada 10 ruang yang memiliki nilai. Anda dapat mengabaikan yang pertama, dan kemudian ada 3 set. 3. Set pertama untuk pemilik, set kedua untuk grup, dan set terakhir untuk dunia.
Untuk mengubah izin file atau direktori, mari kita lihat bentuk dasar dari perintah chmod.
chmod [class][operator][permission] file
chmod [ugoa][+ or –] [rwx] file
Ini mungkin tampak rumit pada awalnya, tetapi percayalah, ini cukup mudah. Pertama, mari kita lihat kelasnya:
- u: Ini untuk pemiliknya.
- g: Ini untuk grup.
- o: Ini untuk yang lainnya.
- a: Ini akan mengubah izin untuk semua hal di atas.
Selanjutnya, operator:
- +: Tanda plus akan menambahkan izin yang mengikuti.
- -: Tanda minus akan menghapus hak akses yang mengikuti.
Masih bersamaku? Dan bagian terakhir sama seperti saat kami memeriksa izin file:
- r: Memungkinkan akses baca.
- w: Memungkinkan akses tulis.
- x: Memungkinkan eksekusi.
Sekarang, mari kita gabungkan. Misalkan 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 menjadi ini:
-rwxr—–
Artinya, pemilik memiliki izin penuh, dan grup dapat membaca. Kami dapat melakukan ini dalam 3 langkah. Pertama, kami akan menambahkan izin eksekusi untuk pengguna.
chmod u + x todo.txt
Kemudian, kami akan menghapus izin tulis untuk grup tersebut.
chmod g-w todo.txt
Terakhir, kami akan menghapus izin membaca untuk semua pengguna lain.
μοδ ο-ρ τοτό.τχτ
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 dengan koma dan tidak ada spasi.
Berikut beberapa izin yang berguna:
- -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 lainnya tidak memilikinya (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, mengelompokkan, 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 keduanya sedikit mendalam dan sebagian besar pengguna tidak benar-benar 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 perizinan?
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 istimewa admin untuk diubah atau diakses. Dengan cara ini, Anda tidak akan mengacaukan apa pun secara tidak sengaja.
Di Ubuntu, untuk membuat perubahan pada file sistem Anda menggunakan "sudo" atau "gksudo" untuk mendapatkan hak istimewa Administrator yang setara. Di distro lain, Anda beralih ke "root" atau "pengguna super" yang secara efektif melakukan hal yang sama sampai Anda keluar.
Ketahuilah bahwa dalam kedua situasi ini, mengubah izin file dapat menyebabkan program tidak berfungsi, secara tidak sengaja mengubah kepemilikan file ke pengguna root (bukan pemilik), dan membuat sistem menjadi kurang aman (dengan memberikan lebih banyak izin). Karena itu, sebaiknya 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 menyiapkan berbagi dasar dalam lingkungan multi-pengguna, melindungi file "publik", dan memberi Anda petunjuk tentang saat terjadi kesalahan dengan kepemilikan file sistem.
Pikirkan Anda bisa menjelaskan hal-hal lebih mudah? Punya koreksi? Ingin mengenang masa lalu? Istirahatlah dan tuliskan pemikiran Anda di kolom komentar.