GNU/Linux >> Belajar Linux >  >> Linux

Apa itu umask di Linux?

UMASK di sistem Linux atau Unix dikenal sebagai User Mask atau disebut juga sebagai User file creation Mask. Ini adalah izin dasar atau izin default ketika file atau folder baru dibuat di mesin Linux.

Ini digunakan oleh banyak perintah di Linux seperti mkdir, touch, tee, dan perintah lain yang membuat file dan direktori. Itu terlibat dalam setiap langkah ketika file atau direktori baru dibuat.

Izin File:

Sebelum kita melangkah lebih jauh ke dalam dan memahami umask, pertama-tama mari kita pahami izin file secara singkat.

Linux terkenal dengan keamanannya. Setiap file atau direktori di Linux memiliki serangkaian izin dan kepemilikan tertentu. Mari kita lihat kelas pengguna di bawah ini.

Setiap file di Linux akan memiliki di bawah tiga kelas pengguna yang terkait dengannya.

  1. Pengguna - Pengguna yang memiliki file - Secara default, ini menunjukkan siapa yang membuat file kecuali Anda mengubahnya.
  2. Grup - Ini menunjukkan bahwa orang-orang dalam grup akan memiliki izin yang ditetapkan untuk file tersebut.
  3. Lainnya - Ini membatasi pengguna lain yang bukan pemilik atau dalam grup yang ditetapkan.

Ada tiga jenis akses file untuk setiap kelas pengguna yang disebutkan di atas.

  1. r - izin baca - kemampuan untuk membaca konten file
  2. w - izin menulis - kemampuan untuk mengubah konten file
  3. x - izin eksekusi - kemampuan untuk mengeksekusi file sebagai program

Konsep di atas memberi tahu Anda siapa yang diizinkan untuk membaca konten file, memodifikasi konten file, atau menjalankan program.

Izin Melihat - Mode Simbolik:

Mari kita lihat kepemilikan file di bawah ini. Anda dapat mengambil informasi di mesin Linux Anda dengan mengetikkan perintah ls -l.

Karakter pertama pada gambar di atas menunjukkan jenis file. Mungkin ada berbagai jenis file di Linux seperti di bawah ini.

-   

Menunjukkan file biasa sederhana dengan ekstensi berbeda seperti .txt, .json, .sh, .py, .rb, dan seterusnya

d

Menunjukkan direktori/folder

l

Menunjukkan tautan simbolik atau symlink atau tautan lunak

c

Menunjukkan file perangkat karakter

b

Menunjukkan file perangkat blokir

Sembilan simbol berikutnya dibagi menjadi tiga bagian seperti di bawah ini.

rwx

File pemilik dapat membaca konten, memodifikasi konten, dan menjalankan file sebagai program

rx

Anggota dalam grup “pengguna” dapat membaca konten dan menjalankan file sebagai program tetapi tidak dapat mengubah konten file

rx

Yang bukan pemilik juga bukan anggota grup yaitu lainnya , juga dapat membaca konten file dan menjalankan file sebagai program tetapi tidak dapat mengubah konten file

Izin Melihat - Mode Numerik:

Ada cara tambahan untuk merepresentasikan izin menggunakan angka yang disebut Mode Numerik.

Mari kita lihat bagan izin file Numerik di bawah ini.

  0

---

Tidak ada izin

1

--x

Hanya Jalankan izin

2

-w-

Hanya izin menulis

3

-wx

Izin Tulis dan Jalankan

4

r--

Hanya izin baca

5

r-x

Izin Baca dan Jalankan

6

rw-

Izin Baca dan Tulis

rwx

Izin Baca, Tulis, dan Jalankan

Jika saya merujuk bagan izin Numerik ini dan menerapkannya pada direktori yang sama yang disebutkan pada gambar di atas, izinnya akan terlihat seperti di bawah ini.

rwx

4+2+1

7

rx

4+0+1

5

rx

4+0+1

5


Oleh karena itu, izin numerik direktori testdir adalah 755. 

Memahami UMASK:

Mari kita buat file dan direktori baru dengan menjalankan perintah di bawah ini.

$ touch testfile
$ mkdir testdir

Mari kita lihat izin testfile dan testdir dengan menjalankan perintah ls -l.

$ ls -l

 
Output:
drwxr-xr-x  2 niteshb users    4096 Mar 21 22:43 testdir
-rw-r--r--  1 niteshb users       0 Mar 21 22:43 testfile
 

Apakah Anda memperhatikan izinnya? Mereka berbeda, kan? Ini karena nilai umask default yang disetel di mesin Linux.

Secara default, pada mesin Linux, izin pembuatan default untuk sebuah file adalah 666 yang memberikan izin baca dan tulis kepada pemilik, grup, dan lainnya dan 777 untuk direktori yang berarti izin baca, tulis, dan eksekusi kepada pemilik, grup, dan yang lain.

Seperti yang kita ketahui direktori tidak dapat dieksekusi. Lalu mengapa direktori memerlukan izin eksekusi? Nah, izin eksekusi ke direktori adalah untuk mengizinkan mengakses konten di bawah direktori. Jika menggunakan perintah chmod kami mengubah izin direktori menjadi 666 dan mencoba masuk ke direktori dengan perintah cd, Anda akan mendapatkan kesalahan izin ditolak.

Pada sebagian besar distribusi Linux, nilai default seluruh sistem diatur di pam_umask.so atau di file /etc/profile. Dengan menambahkan nilai dalam file ~/.bashrc di direktori home pengguna, kita dapat membuat nilai umask khusus untuk pengguna.

Untuk memeriksa nilai umask, jalankan perintah umask.

$umask

Keluaran:

0022

Kita dapat mengabaikan 0 pertama dari empat angka di atas untuk saat ini. Ini adalah bagian dari izin lanjutan di Linux. Yang dapat mencegah memodifikasi file bahkan jika Anda memiliki izin menulis atau kami dapat mencegah untuk menghapus file meskipun Anda adalah pengguna root. Dalam blog ini, kita hanya akan berkonsentrasi pada tiga angka lainnya.

Untuk mengubah nilai umask sesi saat ini, jalankan perintah di bawah ini diikuti dengan nilai yang diinginkan.

$umask 0044

Bagaimana file dan direktori mendapatkan izinnya:

Nilai yang terkait dengan umask BUKAN izin yang Anda dapatkan untuk file dan direktori Anda.

Ada perhitungan yang sangat sederhana. Seperti yang kami sebutkan di atas bahwa nilai default untuk file adalah 666 dan untuk direktori adalah 777. Untuk menghitung bit izin untuk file atau direktori baru, kurangi nilai umask dari nilai default.

Misalnya, mari kita hitung bagaimana pengaruh izin file atau direktori baru karena umask.

  • File:666 - 022 =644. Menurut izin, pemilik dapat membaca dan mengeksekusi file. Grup dan orang lain dapat membaca file.
  • Direktori:777 - 022 =755. Ini berarti pemilik akan memiliki semua izin baca, tulis, dan cd ke direktori. Group dan orang lain dapat membaca dan membuat daftar isi direktori dan cd ke direktori.

Anda juga dapat melihat nilai umask dalam bentuk numerik dengan menjalankan perintah di bawah ini.

$umask

Keluaran:

u=rwx,g=rx,o=rx

Tidak seperti notasi numerik, nilai notasi simbolik berisi bit izin yang akan ditetapkan pada file dan direktori yang baru dibuat.

Menyetel nilai topeng:

Masker pembuatan file dapat diatur menggunakan notasi oktal atau simbolis. Untuk membuat perubahan permanen, setel nilai umask baru dalam file konfigurasi global seperti file /etc/profile yang akan mempengaruhi semua pengguna atau dalam file konfigurasi shell pengguna seperti ~/.profile, ~/.bashrc atau ~/.zshrc yang hanya akan mempengaruhi pengguna. File pengguna lebih diutamakan daripada file global.

Sebelum melakukan perubahan pada umask nilai pastikan nilai baru tidak menimbulkan potensi risiko keamanan. Nilai kurang membatasi dari 022 harus digunakan dengan sangat hati-hati. Misalnya umask 000 artinya setiap orang akan memiliki izin membaca, menulis, dan mengeksekusi untuk semua file yang baru dibuat.

Katakanlah kita ingin menetapkan izin yang lebih ketat untuk file dan direktori yang baru dibuat sehingga orang lain tidak dapat cd ke direktori dan membaca file. Izin yang kami inginkan adalah 750 untuk direktori dan 640 untuk file.

Untuk menghitung umask nilai cukup kurangi izin yang diinginkan dari izin default:

Nilai Umask:777-750 = 027

umask yang diinginkan nilai yang direpresentasikan dalam notasi numerik adalah 027 .

Untuk secara permanen menetapkan nilai baru di seluruh sistem, buka /etc/profile file dengan editor teks Anda dan ubah atau tambahkan baris berikut di awal file:

umask 0027

Agar perubahan diterapkan, jalankan perintah sumber berikut atau keluar dan masuk:

$source /etc/profile

Untuk memverifikasi pengaturan baru, kami akan membuat satu file dan direktori baru menggunakan perintah di bawah ini.

$mkdir newtestdir
$touch newtestfile

Jika Anda memeriksa izin menggunakan perintah ls, Anda akan melihat bahwa file baru memiliki 640 dan direktori baru 750 izin, seperti yang kami inginkan:

drwxr-xr--  2 niteshb  users    4096 Mar 21 22:43 newtestdir
-rw-r-----  1 niteshb  users       0 Mar 21 22:43 newtestfile
 

Cara lain untuk mengatur topeng pembuatan file adalah dengan menggunakan notasi simbolis. Misalnya umask u=rwx,g=rx,o= sama dengan umask 027 .

Kesimpulan:

Dalam panduan ini, kami telah menjelaskan izin Linux dan cara menggunakan umask perintah untuk mengatur bit izin untuk file atau direktori yang baru dibuat.

Untuk informasi lebih lanjut, ketik perintah di bawah ini di terminal Anda.

$man umask

Linux
  1. Apa itu pengguna Linux?

  2. Apa itu Umask di Linux?

  3. Apa nomor inode di Linux?

  1. Apa itu NFS dan bagaimana cara menginstalnya di Linux

  2. Linux – Semuanya Adalah File?

  3. Apa itu umask di UNIX/Linux

  1. Apa itu JingOS Linux?

  2. Apa itu file .so.2?

  3. Untuk apa Linux test -a command test?