Pada sistem operasi Linux dan Unix, semua file baru dibuat dengan set izin default. Utilitas umask memungkinkan Anda untuk melihat atau mengatur pembuatan mode file mask, yang menentukan izin bit untuk file atau direktori yang baru dibuat.
Ini digunakan oleh mkdir, touch, tee dan perintah lain yang membuat file dan direktori baru.
Izin di Linux
Sebelum melangkah lebih jauh, mari kita jelaskan model izin di Linux.
Di Linux, setiap file dikaitkan dengan owner dan grup dan ditugaskan dengan hak akses izin untuk tiga kelas pengguna yang berbeda:
- file owner.
- group members.
- everybody else.
Ada tiga jenis izin yang berlaku untuk setiap kelas:
- izin read.
- izin write.
- izin execute.
Konsep ini memungkinkan Anda menentukan pengguna mana yang diizinkan membaca file, menulis ke file, atau menjalankan file.
Untuk melihat izin file, gunakan perintah ls:
ls -l dirname
drwxr-xr-x 12 linuxid users 4.0K Apr 8 20:51 dirname |[-][-][-] [------] [---] | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
Karakter pertama mewakili tipe file yang dapat berupa file biasa (-
), direktori (d
), symbolic link (l
) atau jenis file khusus lainnya.
Sembilan karakter berikutnya mewakili izin, masing-masing tiga set tiga karakter. Set pertama menunjukkan izin pemilik, yang kedua adalah izin grup, dan set terakhir menunjukkan izin pengguna lain.
Karakter r
dengan nilai oktal 4
singkatan untuk read, w
dengan nilai oktal 2
untuk write, x dengan nilai oktal 1
untuk mengeksekusi izin dan (-
) dengan nilai oktal 0
untuk tanpa izin.
Ada juga tiga jenis izin file khusus lainnya: setuid
, setgid
dan Sticky Bit
.
Dalam contoh di atas (rwxr-xr-x
) berarti bahwa pemilik memiliki izin membaca, menulis, dan mengeksekusi izin (rwx
), grup dan yang lainnya dapat membaca dan mengeksekusi.
Jika kita merepresentasikan izin file menggunakan notasi numerik, kita akan mendapatkan nomor 755
:
- Owner:
rwx
=4+2+1 = 7
- Group:
r-x
=4+0+1 = 5
- Other:
r-x
=4+0+1 = 5
Ketika diwakili dalam notasi numerik, izin dapat memiliki tiga atau empat digit oktal (0-7). Digit pertama mewakili izin khusus dan jika dihilangkan berarti tidak ada izin khusus yang ditetapkan pada file. Dalam kasus kami 755
sama dengan 0755
. Digit pertama dapat berupa kombinasi dari 4 untuk setuid
, 2 untuk setgid
dan 1
untuk Sticky Bit
.
Izin file dapat diubah menggunakan perintah chmod
dan untuk kepemilikan menggunakan perintah chown
.
Memahami Perintah umask
Secara default, pada sistem Linux, izin pembuatan default adalah 666
untuk file, yang memberikan izin read dan write kepada user, grup, dan lainnya, dan ke 777
untuk direktori, yang berarti pengguna, grup, dan lainnya memiliki izin untuk read, write danexecute. Linux tidak mengizinkan file dibuat dengan izin mengeksekusi.
Izin pembuatan default dapat dimodifikasi menggunakan utilitas umask
.
umask
Hanya memengaruhi shell environment saat ini. Pada sebagian besar distribusi Linux, nilai umask seluruh sistem default diatur dalam pam_umask.so
atau file /etc/profile
.
Jika Anda ingin menentukan nilai yang berbeda pada basis per user, edit file konfigurasi shell seperti ~/.bashrc
atau ~/.zshrc
. Anda juga dapat mengubah nilai sesi saat ini dengan menjalankan umask
diikuti oleh nilai yang diinginkan.
Untuk melihat nilai mask saat ini, cukup ketik umask
tanpa argumen apa pun:
umask
Output akan mencakup
022
Nilai umask
berisi bit izin yang TIDAK akan diatur pada file dan direktori yang baru dibuat.
Seperti yang telah kami sebutkan, izin pembuatan default untuk file adalah 666
dan untuk direktori 777
. Untuk menghitung bit izin file baru kurangi nilai umask dari nilai default.
Misalnya, untuk menghitung bagaimana uname 022
akan mempengaruhi file dan direktori yang baru dibuat, gunakan:
- File:
666 - 022 = 644
. Pemilik dapat membaca dan memodifikasi file. Grup dan lainnya hanya dapat membaca file. - Direktori:
777 - 022 = 755
. Pemilik dapat melakukancd
ke direktori dan dapat membaca, memodifikasi, membuat atau menghapus file dalam direktori. Grup dan yang lainnya dapat melakukan cd ke direktori dan daftar serta membaca file.
Anda juga dapat menampilkan nilai mask dalam notasi simbolis menggunakan opsi -S
:
umask -S
u=rwx,g=rx,o=rx
Berbeda dengan notasi numerik, nilai notasi simbolik berisi bit izin yang akan ditetapkan pada file dan direktori yang baru dibuat.
Mengatur nilai mask
Pembuatan file mask dapat diatur menggunakan notasi oktal atau simbolis. Untuk membuat perubahan permanen, atur nilai umask
baru dalam file konfigurasi global seperti file /etc/profile
yang akan memengaruhi 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 membuat perubahan pada nilai umask
, pastikan nilai baru tidak menimbulkan risiko keamanan potensial. Nilai yang tidak terlalu membatasi dibandingkan 022
harus digunakan dengan sangat hati-hati. Misalnya umask 000 berarti bahwa siapa pun akan dapat 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 akan dapat melakukan cd
ke direktori dan membaca file. Izin yang kita inginkan adalah 750
untuk direktori dan 640
untuk file.
Untuk menghitung nilai umask
, cukup kurangi izin yang diinginkan dari yang default:
Nilai Umask : 777-750 = 027
Nilai umask
yang diinginkan terwakili dalam notasi numerik adalah 027
.
Untuk secara permanen mengatur seluruh sistem nilai yang baru buka file /etc/profile
dengan editor teks Anda:
sudo nano /etc/profile
ubah atau tambahkan baris berikut di awal file:
umask 027
Agar perubahan diterapkan, jalankan perintah source
atau logout dan log in kembali :
source /etc/profile
Untuk memverifikasi pengaturan baru, kita akan membuat satu file dan direktori baru menggunakan mkdir
dan touch
:
mkdir dirbaru touch filebaru
Jika Anda memeriksa izin menggunakan perintah ls
Anda akan melihat bahwa file baru memiliki izin baru 640
dan direktori 750
, seperti yang kita inginkan:
drwxr-x--- 2 linuxid users 4096 Jul 4 18:14 newdir
-rw-r----- 1 linuxid users 0 Jul 4 18:14 newfile
Another way to set the file creation mask is by using the symbolic notation. For example umask u=rwx,g=rx,o=
is same as umask 027
.
Cara lain untuk mengatur file mask adalah dengan menggunakan notasi simbolik. Misalnya umask u=rwx,g=rx,o=
sama dengan umask 027
.
Kesimpulan
Dalam panduan ini, kami telah menjelaskan izin Linux dan cara menggunakan perintah umask
untuk mengatur izin untuk file atau direktori yang baru dibuat.
Untuk informasi lebih lanjut ketikkan man umask
di terminal Anda.