Pada sistem operasi Linux dan Unix, semua file baru dibuat dengan serangkaian izin default. umask
utilitas memungkinkan Anda untuk melihat atau menyetel topeng pembuatan mode file, yang menentukan bit izin untuk file atau direktori yang baru dibuat.
Ini digunakan oleh mkdir, touch, tee, dan perintah lain yang membuat file dan direktori baru.
Izin Linux #
Sebelum melangkah lebih jauh, mari kita jelaskan model izin Linux secara singkat.
Di Linux, setiap file dikaitkan dengan pemilik dan grup dan diberikan dengan hak akses izin untuk tiga kelas pengguna yang berbeda:
- Pemilik file.
- Anggota grup.
- Semua orang.
Ada tiga jenis izin yang berlaku untuk setiap kelas:
- Izin membaca.
- Izin menulis.
- Izin eksekusi.
Konsep ini memungkinkan Anda untuk menentukan pengguna mana yang diizinkan untuk membaca file, menulis ke file, atau mengeksekusi file.
Untuk melihat izin file, gunakan ls
perintah:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname
|[-][-][-] [------] [---]
| | | | | |
| | | | | +-----------> Group
| | | | +-------------------> Owner
| | | +----------------------------> Others Permissions
| | +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type
Karakter pertama mewakili jenis file yang dapat berupa file biasa (-
), sebuah direktori (d
), tautan simbolis(l
), atau jenis file khusus lainnya.
Sembilan karakter berikutnya mewakili izin, tiga set masing-masing tiga karakter. Set pertama menunjukkan izin pemilik, yang kedua izin grup, dan set terakhir menunjukkan izin orang lain.
Karakter r
dengan nilai oktal 4
singkatan dari read, w
dengan nilai oktal 2
untuk menulis, x
dengan nilai oktal 1
untuk menjalankan izin, dan (-
) dengan nilai oktal 0
tanpa izin.
Ada juga tiga jenis izin file khusus lainnya:setuid
, setgid,
dan Sticky Bit
.
Pada contoh di atas (rwxr-xr-x
) berarti pemilik telah membaca, menulis, dan menjalankan izin (rwx
), grup dan lainnya telah membaca dan menjalankan izin.
Jika kita merepresentasikan hak akses file menggunakan notasi numerik, kita akan mendapatkan angka 755
:
- Pemilik:
rwx
=4+2+1 = 7
- Grup:
r-x
=4+0+1 = 5
- Lainnya:
r-x
=4+0+1 = 5
Saat direpresentasikan 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 contoh kita 755
sama dengan 0755
. Digit pertama dapat berupa kombinasi 4
untuk setuid
, 2
untuk setgid
, dan 1
untuk Sticky Bit
.
Izin file dapat diubah menggunakan chmod
perintah dan kepemilikan menggunakan chown
perintah.
Memahami umask #
Secara default, pada sistem Linux, izin pembuatan default adalah 666
untuk file, yang memberikan izin baca dan tulis kepada pengguna, grup, dan lainnya, dan ke 777
untuk direktori, yang berarti membaca, menulis, dan mengeksekusi izin ke pengguna, grup, dan lainnya. Linux tidak mengizinkan file dibuat dengan izin eksekusi.
Izin pembuatan default dapat dimodifikasi menggunakan umask
utilitas.
umask
hanya mempengaruhi lingkungan shell saat ini. Pada sebagian besar distribusi Linux, nilai umask seluruh sistem default diatur di pam_umask.so
atau /etc/profile
berkas.
Jika Anda ingin menentukan nilai yang berbeda pada basis per pengguna, edit file konfigurasi shell pengguna seperti ~/.bashrc
atau ~/.zshrc
. Anda juga dapat mengubah sesi saat ini umask
nilai dengan menjalankan umask
diikuti dengan nilai yang diinginkan.
Untuk melihat nilai topeng saat ini, cukup ketik umask
tanpa argumen:
umask
Outputnya akan menyertakan
022
umask
value berisi bit izin yang TIDAK 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 umask 022
akan mempengaruhi file dan direktori yang baru dibuat, gunakan:
- File:
666 - 022 = 644
. Pemilik dapat membaca dan memodifikasi file. Grup dan orang lain hanya dapat membaca file. - Direktori:
777 - 022 = 755
.Pemilik dapatcd
ke dalam direktori, dan daftar, membaca, memodifikasi, membuat atau menghapus file dalam direktori. Grup dan lainnya dapatcd
ke dalam direktori dan daftar dan baca file.
Anda juga dapat menampilkan nilai topeng dalam notasi simbolis menggunakan -S
pilihan:
umask -S
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 Mask #
Masker pembuatan file dapat diatur menggunakan notasi oktal atau simbolis. Untuk membuat perubahan permanen, setel umask
baru nilai dalam file konfigurasi global seperti /etc/profile
file yang akan memengaruhi semua pengguna atau di file konfigurasi shell pengguna seperti ~/.profile
, ~/.bashrc
atau ~/.zshrc
, yang hanya akan memengaruhi 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
berarti siapa pun telah membaca, menulis, dan menjalankan izin pada 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 menetapkan nilai baru di seluruh sistem secara permanen, buka /etc/profile
file dengan editor teks Anda:
sudo nano /etc/profile
dan ubah atau tambahkan baris berikut di awal file:
/etc/profileumask 027
Agar perubahan diterapkan, jalankan source
berikut perintah atau logout dan login:
source /etc/profile
Untuk memverifikasi pengaturan baru, kami akan membuat satu file dan direktori baru menggunakan mkdir
dan touch
:
mkdir newdir
touch newfile
Jika Anda memeriksa izin menggunakan ls
perintah, Anda akan melihat bahwa file baru memiliki 640
dan direktori baru 750
izin, seperti yang kami inginkan:
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir
-rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
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 man umask
di terminal Anda.
Jika Anda memiliki pertanyaan, silakan tinggalkan komentar di bawah.