Apa itu umask di Linux, dan Bagaimana Cara Menggunakannya?

  • Post author:
  • Post category:Tutorial

Di Linux, semua direktori dan file memiliki izin akses. Anda dapat menggunakan chmod untuk mengatur hak akses pilihan Anda untuk pengguna yang berbeda. Namun, apa yang menentukan izin default mereka? Mari kita bicara tentang umask.

Access Permissions

Semua direktori dan file memiliki tanda yang disebut bit mode yang memutuskan apakah mereka dapat dibaca, ditulis, atau dieksekusi. Mengeksekusi file berarti menjalankannya seperti program atau skrip. Untuk sebuah direktori, Anda harus dapat “mengeksekusi” sebuah direktori untuk dimasukkan ke dalamnya. Secara kolektif pengaturan mode bit disebut izin direktori atau file.

Ada tiga set izin. Satu set adalah untuk pemilik direktori atau file. Kecuali jika kepemilikan telah diubah dengan chown, pemiliknya adalah orang yang membuat direktori atau file.

Set izin kedua adalah untuk anggota grup pengguna yang direktori atau filenya telah ditetapkan . Biasanya, ini adalah grup pengguna pemilik.

Ada set izin ketiga dan terakhir untuk “orang lain”. Ini mencakup semua orang yang tidak termasuk dalam dua set pertama.

Dengan memisahkan izin seperti ini, kemampuan yang berbeda dapat diberikan ke tiga kategori. Ini adalah bagaimana direktori dan akses file dikontrol di Linux. Meskipun skemanya sederhana, ia menyediakan cara yang fleksibel dan kuat untuk menentukan siapa yang dapat melakukan apa dengan direktori atau file apa pun.

Mode Bits

Anda dapat melihat izin untuk file dengan menggunakan perintah ls dan opsi -l (format panjang).

ls -l any*

Kita juga akan melihat direktori dengan menambahkan opsi -d (direktori). Tanpa opsi ini, ls akan melihat file di dalam direktori, bukan pada direktori itu sendiri.

ls -ld

Pada awal setiap entri dalam daftar ls, ada kumpulan 10 karakter. Berikut adalah tampilan close-up dari karakter tersebut untuk file dan direktori.

File adalah baris atas, direktori adalah baris bawah. Karakter pertama memberi tahu kita apakah kita sedang melihat direktori atau file. Sebuah “d” menunjukkan direktori dan tanda hubung “-” menunjukkan file.

Tiga set izin ditunjukkan oleh masing-masing kelompok tiga karakter. Dari kiri ke kanan ini adalah izin untuk pemilik, grup, dan lainnya. Di setiap set izin, tiga karakter, dari kiri ke kanan, menunjukkan pengaturan untuk izin baca “r”, izin tulis “w”, dan izin eksekusi “x”. Surat berarti izin ditetapkan. Tanda hubung “-” berarti izin tidak disetel.

Untuk file contoh kami, 10 karakter berarti:

  • –: Ini adalah file, bukan direktori.
  • rwx: Pemilik dapat membaca, menulis, dan mengeksekusi file ini.
  • rw- : Anggota lain dari grup yang sama dengan file ini dapat membaca dan menulis ke file, tetapi mereka tidak dapat menjalankannya.
  • r–: Semua orang hanya dapat membaca file.

Untuk direktori contoh kami, 10 karakter berarti:

  • d: Ini adalah direktori.
  • rwx: Pemilik dapat membaca, menulis, dan mengeksekusi (cd ke) direktori ini.
  • rwx: Anggota lain dari grup yang sama dapat membaca, menulis, dan cd ke direktori ini.
  • r-x: Semua orang dapat melakukan cd ke direktori ini , tetapi mereka hanya dapat membaca file. Mereka tidak dapat menghapus file, mengedit file, atau membuat file baru.

Izin disimpan dalam bit mode dalam metadata direktori atau file. Setiap bit mode memiliki nilai numerik. Semuanya bernilai nol jika tidak disetel.

  • r: Bit baca bernilai 4 jika disetel.
  • w: Bit tulis bernilai 2 jika set.
  • x: Bit eksekusi bernilai 1 jika set.

Satu set tiga izin dapat diwakili oleh jumlah nilai bit. Nilai maksimumnya adalah 4+2+1=7, yang akan menyetel ketiga izin dalam satu set ke “aktif.” Itu berarti semua permutasi dari ketiga set dapat ditangkap dalam nilai Oktal (basis 8) tiga digit.

Mengambil file contoh kami dari atas, pemilik telah membaca, menulis, dan mengeksekusi izin, yaitu 4+2+1=7 . Anggota lain dari grup tempat file tersebut memiliki izin baca dan tulis, yaitu 4+2=6. Kategori lainnya hanya memiliki set izin baca, yaitu 4.

Jadi izin untuk file itu dapat dinyatakan sebagai 764.

Menggunakan skema yang sama, izin untuk direktori adalah 775. Anda dapat melihat representasi Oktal dari izin tersebut menggunakan perintah stat.

Perintah chmod (ubah mode bit) adalah alat yang digunakan untuk menyetel izin pada direktori dan file. Tapi itu tidak menentukan izin apa yang ditetapkan pada direktori atau file saat Anda membuatnya. Satu set izin default digunakan untuk itu.

Izin Default dan umask

Izin default untuk direktori adalah 777, dan izin default untuk file adalah 666. Itu memberi setiap pengguna akses penuh ke semua direktori, dan kemampuan untuk membaca dan menulis berkas apa pun. Bit eksekusi tidak diatur pada file. Anda tidak dapat membuat file yang sudah memiliki bit eksekusi. Itu bisa menimbulkan risiko keamanan.

Namun, jika Anda membuat direktori baru dan file baru dan melihat izinnya, mereka tidak akan disetel ke 777 dan 666. Kami akan membuat file dan direktori, kemudian gunakan stat yang disalurkan melalui grep untuk mengekstrak baris dengan representasi Oktal dari permissions.

touch mereka umask-article.txtmkdir howtogeekstat umask-article.txt | grep “Access: (“stat howtogeek | grep “Access: (”

Mereka disetel ke 775 untuk direktori dan 664 untuk file. Mereka tidak disetel ke izin default global karena nilai lain memodifikasinya, yang disebut nilai umask .

Nilai umask

Nilai umask disetel secara global dengan satu nilai untuk root dan nilai yang berbeda untuk semua pengguna lain. Namun nilai ini dapat disetel ke nilai baru untuk siapa saja. Untuk melihat setelan umask saat ini, gunakan perintah umask.

umask

And untuk root:

umask

Izin pada direktori atau file yang baru dibuat adalah hasil dari nilai umask yang memodifikasi izin default global.

Sama seperti bit mode, nilai umask mewakili tiga set izin yang sama—pemilik, grup, dan lainnya— dan mewakili mereka sebagai tiga digit Oktal. Terkadang Anda akan melihatnya ditulis sebagai empat digit, dengan digit pertama adalah nol. Itu adalah cara singkat untuk mengatakan “ini adalah bilangan oktal”. Ini adalah tiga digit paling kanan yang dihitung.

The nilai umask tidak dapat menambahkan izin. Itu hanya dapat menghapus—atau menutupi—izin. Itu sebabnya izin default sangat liberal. Mereka dirancang untuk dikurangi ke tingkat yang masuk akal dengan penerapan nilai umask.

Satu set izin default tidak akan cocok untuk semua pengguna, juga tidak akan cocok untuk semua skenario. Misalnya, direktori dan file yang dibuat oleh root akan membutuhkan izin yang lebih ketat daripada rata-rata pengguna. Dan bahkan rata-rata pengguna tidak ingin semua orang di kategori lain dapat melihat dan mengubah file mereka.

Cara Mengatur Permission umask

Mengurangkan nilai mask dari izin default memberi Anda izin yang sebenarnya. Dengan kata lain, jika izin ditetapkan dalam nilai umask, izin tersebut tidak akan disetel dalam izin yang diterapkan ke direktori atau file.

Nilai umask berfungsi sebagai kebalikan dari nilai izin biasa.

  • 0: Tidak ada izin yang dihapus.
  • 1: Bit eksekusi tidak disetel dalam izin.
  • 2: Bit tulis tidak disetel dalam izin.
  • 4: Bit baca tidak disetel dalam izin.

Izin default 777 untuk direktori dan 666 untuk file dimodifikasi oleh nilai umask 002 untuk menghasilkan izin akhirnya 775 dan 664 pada direktori pengujian kami dan file.

stat umask-article.txt | grep "Access: ("stat howtogeek | grep "Access: ("

Ini menghapus izin menulis dari kategori lain pada direktori dan file.

if root membuat direktori, nilai umask mereka 022 diterapkan. Izin menulis adalah dihapus untuk kategori lain dan juga untuk kategori grup.

sudo mkdir root-dirstat howtogeek | grep "Access: ("

Kita dapat melihat bahwa izin default 777 telah dikurangi menjadi 755.

Mengubah Nilai umask Default

Ada nilai umask yang berbeda untuk shell login dan shell non-login. Shell login adalah shell yang memungkinkan Anda login, baik secara lokal maupun jarak jauh melalui SSH. Shell non-login adalah shell di dalam jendela terminal ketika Anda sudah masuk.

Berhati-hatilah jika Anda mengubah shell login umask. Jangan menambah izin dan menurunkan keamanan Anda. Jika ada, Anda harus cenderung menguranginya dan membuatnya lebih res trictive.

Di Ubuntu dan Manjaro, pengaturan umask dapat ditemukan di file-file ini:

  • Login Shell umask: Untuk nilai umask default shell login: /etc/profile
  • Non-Login Shell: Untuk nilai umask default shell non-login: /etc/ bash.bashrc

On Fedora, pengaturan umask dapat ditemukan di file-file ini:

  • Login Shell umask: Untuk log in nilai umask default shell: /etc/profile
  • Non-Login Shell: Untuk nilai umask default shell non-login: /etc/bashrc

JIka Anda tidak memiliki kebutuhan mendesak untuk mengubahnya, sebaiknya biarkan saja.

Cara yang lebih disukai adalah menetapkan nilai umask baru untuk setiap akun pengguna individu yang perlu berbeda dari default. Pengaturan umask baru dapat dimasukkan ke dalam file “.bashrc” pengguna di direktori home mereka.

gedit .bashrc

Tambahkan pengaturan umask Anda di dekat bagian atas file.

Simpan file dan tutup editor. buka jendela terminal baru dan periksa nilai umask dengan perintah umask.

umask

Nilai baru aktif.

Perubahan Jangka Pendek ke umask

Jika Anda memiliki persyaratan jangka pendek untuk nilai umask yang berbeda, Anda dapat mengubahnya untuk sesi Anda saat ini menggunakan perintah umask. Mungkin Anda akan membuat pohon direktori dan beberapa file dan Anda ingin meningkatkan keamanannya.

Anda dapat menyetel nilai umask ke 077, lalu memeriksa nilai baru yang aktif.

umask 077

Menyetel mask agar memiliki nilai 7 dalam kategori grup dan lainnya berarti semua izin dicabut dari kategori tersebut. Tidak seorang pun kecuali Anda (dan root) yang dapat memasuki direktori baru dan membaca serta mengedit file Anda.

mkdir secure-dirls -ld secure-dir

Satu-satunya izin adalah untuk pemilik direktori.

mkdir secure-file.txtls -ld secure- file.txt

File ini aman dari pengintaian dari pengguna lain. Menutup jendela terminal Anda akan membuang pengaturan umask sementara.

Cara Lain Digunakannya umask

Linux memungkinkan beberapa proses mewarisi nilai umask sistem, atau diberi pengaturan umask mereka sendiri. Misalnya, useradd menggunakan pengaturan umask untuk membuat direktori home pengguna baru.

Nilai umask dapat diterapkan ke sistem file juga.

less /etc/fstab

Di komputer ini, sistem file “/boot/efi” memiliki pengaturan umask 077 yang diterapkan to it.

Melihat titik pemasangan sistem file dengan ls kita dapat memverifikasi bahwa nilai umask telah menghapus semua izin dari semua orang selain dari pemilik, root.

ls /boot/efi -ld

umask dan Izin Saling Memerlukan

Izin default diterapkan ke direktori atau file setelah mereka diubah oleh nilai umask. Akan sangat jarang Anda perlu mengubah nilai umask secara permanen untuk pengguna, tetapi untuk sementara menyetel nilai umask Anda untuk memberikan serangkaian izin yang lebih ketat saat Anda membuat kumpulan direktori atau dokumen sensitif adalah cara cepat dan mudah untuk mendukungnya. security.

Itulah berita seputar Apa itu umask di Linux, dan Bagaimana Cara Menggunakannya?, semoga bermanfaat. Disadur dari HowToGeek.com.