GNU/Linux >> Belajar Linux >  >> Linux

Konsep Linux Sticky Bit Dijelaskan dengan Contoh

Pikirkan skenario di mana Anda membuat direktori Linux yang dapat digunakan oleh semua pengguna sistem Linux untuk membuat file. Pengguna dapat membuat, menghapus atau mengganti nama file sesuai dengan kenyamanan mereka di direktori ini. Untuk semua orang yang berpikir mengapa direktori seperti itu dibuat? Ada, misalnya, direktori /tmp di sistem Linux yang dapat digunakan oleh pengguna Linux yang berbeda untuk membuat file sementara.

Sekarang, bagaimana jika pengguna secara tidak sengaja atau sengaja menghapus (atau mengganti nama) file dibuat oleh beberapa pengguna lain di direktori ini?

Nah, untuk menghindari masalah seperti ini, digunakan konsep sticky bit.

Bit Sticky adalah bit izin yang ditetapkan pada file atau direktori yang memungkinkan hanya pemilik file/direktori atau pengguna root untuk menghapus atau mengganti nama file. Tidak ada pengguna lain yang diberikan hak istimewa untuk menghapus file yang dibuat oleh beberapa pengguna lain.

Sejarah Bit Lengket

Sebelum menjelaskan lebih jauh tentang sticky bit, mari kita bahas sejarah sticky bit karena informasi ini layak untuk didiskusikan.

Bit lengket bukanlah konsep baru. Bahkan, pertama kali diperkenalkan pada tahun 1974 di sistem operasi Unix. Tujuan dari sticky bit saat itu berbeda. Itu diperkenalkan untuk meminimalkan waktu tunda yang diperkenalkan setiap kali program dijalankan.

Ketika sebuah program dijalankan, dibutuhkan waktu untuk memuat program ke dalam memori sebelum pengguna benar-benar dapat mulai menggunakannya. Jika sebuah program, misalnya editor sering digunakan oleh pengguna, waktu tunda start-up adalah overhead saat itu.

Untuk meningkatkan waktu tunda ini, bit lengket diperkenalkan. OS memeriksa bahwa jika sticky bit pada executable AKTIF, maka segmen teks dari executable disimpan di ruang swap. Hal ini memudahkan untuk memuat kembali file yang dapat dieksekusi ke dalam RAM saat program dijalankan kembali sehingga meminimalkan waktu tunda.

Meskipun metode ini terbukti berhasil meminimalkan waktu tunda start-up tetapi ada masalah besar yang muncul karena operasi ini. Masalahnya adalah jika beberapa jenis tambalan diterapkan ke executable sebagai perbaikan bug atau fitur baru, maka langkah-langkah berikut harus dilakukan:

  • Pertama, hapus bit yang lengket dari yang dapat dieksekusi
  • Sekarang, jalankan file yang dapat dieksekusi dan keluar sehingga segmen teks yang ada dari swap dihapus
  • Sekarang, atur kembali sticky bit pada executable dan jalankan kembali executable sehingga segmen teks baru disimpan dalam memori swap

Langkah-langkah di atas diperlukan agar program mencerminkan fitur baru atau perbaikan bug yang ditambahkan ke executable.

Jadi ini adalah salah satu masalah utama. Selain itu, dengan evolusi teknologi, teknik akses memori cepat berevolusi yang menghilangkan persyaratan sticky bit untuk tujuan ini.

Contoh Sticky bit

Di bagian ini, kita akan membahas cara menyetel dan menghapus sticky bit menggunakan beberapa contoh.

Contoh dasar

Buat direktori dan berikan akses baca-tulis-eksekusi kepada semua pengguna :

# mkdir allAccess

# chmod 777 allAccess/

# ls -ld allAccess/
drwxrwxrwx 2 himanshu himanshu 4096 Oct 24 15:43 allAccess/

Jadi kita melihat bahwa direktori bernama 'allAccess' dibuat dan akses baca-tulis-eksekusi ke direktori ini diberikan kepada semua pengguna melalui perintah chmod.

Sekarang, buat beberapa file dalam direktori ini (dengan pengguna yang berbeda) sehingga semua pengguna memiliki akses baca-tulis-eksekusi ke file tersebut.

Misalnya:

# ls -l allAccess/
total 0
-rwxrwxrwx 1 himanshu himanshu 0 Oct 24 15:48 user1
-rwxrwxrwx 1 guest    guest    0 Oct 24 16:11 user_file_0
-rwxrwxrwx 1 guest-2  guest-2  0 Oct 24 16:15 user_file_1

File user_file_0 dan user_file_1 dibuat oleh pengguna yang berbeda tetapi memiliki akses baca-tulis-eksekusi untuk semua pengguna. Artinya, pengguna 'guest' dapat menghapus atau mengganti nama file yang dibuat oleh pengguna 'guest-2'.

Untuk menghindari hal ini, sticky bit dapat diatur pada direktori allAccess.

Sekarang, AKTIFKAN sticky bit pada direktori dengan menggunakan flag +t dari perintah chmod.

# chmod +t allAccess/

# ls -ld allAccess/
drwxrwxrwt 2 himanshu himanshu 4096 Oct 24 16:19 allAccess/

Seperti yang dapat diamati, bit izin 't' diperkenalkan di bit izin direktori.

Sekarang, jika pengguna 'guest' mencoba mengganti nama file 'user_file_1', inilah yang terjadi :

$ mv /home/himanshu/allAccess/user_file_1 /home/himanshu/allAccess/user_file_0
mv: cannot move `/home/himanshu/allAccess/user_file_1' to `/home/himanshu/allAccess/user_file_0': Operation not permitted

Jadi kami melihat bahwa operasi itu tidak diizinkan.

Hapus bit yang lengket menggunakan opsi -t

Bit lengket dapat dihapus dari izin direktori melalui opsi -t dari perintah chmod.

Ini contohnya :

# chmod -t allAccess/

# ls -ld allAccess/
drwxrwxrwx 2 himanshu himanshu 4096 Oct 24 16:19 allAccess/

Jadi kita melihat bahwa izin bit 't' dihapus dari direktori.

OS yang berbeda berperilaku berbeda dengan bit lengket seperti yang dijelaskan dalam artikel wikipedia ini. Misalnya, Linux hanya mencari sticky bit jika pengguna mencoba mengganti nama file. Itu tidak akan memeriksa bit lengket jika file sedang dihapus.


Linux
  1. Perintah nslookup Linux Dijelaskan Dengan Contoh

  2. Perintah Traceroute Linux, Dijelaskan dengan Contoh

  3. Perintah Ping Linux Dijelaskan dengan Contoh

  1. Perintah potong Linux Dijelaskan dengan 6 Contoh

  2. Perintah shutdown Linux Dijelaskan dengan Contoh

  3. perintah whoami di Linux dijelaskan dengan contoh

  1. Perintah Linux ldd Dijelaskan dengan Contoh

  2. Linux membuat Perintah Dijelaskan Dengan Contoh

  3. Linux lebih banyak Perintah Dijelaskan dengan Contoh