Ini mungkin salah satu hal saya yang paling menjengkelkan yang selalu dikacaukan orang. Bit SUID / GUID dan sticky-bit adalah 2 hal yang sangat berbeda.
Jika Anda melakukannya, man chmod
Anda dapat membaca tentang SUID dan bit-lengket. The man page tersedia di sini juga.
Latar Belakang
kutipan
Huruf rwxXst memilih bit mode file untuk pengguna yang terpengaruh: baca (r), tulis (w), jalankan (atau cari direktori) (x), jalankan / cari hanya jika file tersebut adalah direktori atau sudah memiliki izin eksekusi untuk beberapa pengguna (X), atur ID pengguna atau grup pada eksekusi , bendera penghapusan terbatas atau
bit sticky (t) .
SUID / GUID
Apa halaman manual di atas coba katakan adalah bahwa posisi bit x mengambil rwxrwxrwx untuk oktal pengguna (grup 1 rwx) dan grup oktal (grup 2 rwx) dapat mengambil status tambahan di mana x menjadi sebuah s. Ketika ini terjadi file ini ketika dieksekusi (jika itu sebuah program dan bukan hanya skrip shell) akan berjalan dengan izin dari pemilik atau grup file.
Jadi jika file tersebut dimiliki oleh root dan bit SUID dihidupkan, program akan berjalan sebagai root. Bahkan jika Anda menjalankannya sebagai pengguna biasa. Hal yang sama berlaku untuk bit GUID.
kutipan
SETUID DAN SETGID BITS
chmod menghapus bit set-group-ID dari file biasa jika ID grup file tidak cocok dengan ID grup efektif pengguna atau salah satu ID grup tambahan pengguna, kecuali jika pengguna memiliki hak istimewa yang sesuai. Pembatasan tambahan dapat menyebabkan bit set-user-ID dan set-group-ID MODE atau RFILE diabaikan. Perilaku ini tergantung pada kebijakan dan fungsi panggilan sistem chmod yang mendasarinya. Jika ragu, periksa perilaku sistem yang mendasarinya.
chmod mempertahankan bit set-pengguna-ID dan set-grup-ID direktori kecuali Anda secara eksplisit menentukan sebaliknya. Anda dapat mengatur atau menghapus bit dengan mode simbolik seperti u + s dan gs, dan Anda dapat mengatur (tetapi tidak menghapus) bit dengan mode numerik.
Contoh SUID / GUID
no suid / guid - hanya bit rwxr-xr-x yang ditetapkan.
$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid & bit yang dapat dieksekusi pengguna diaktifkan (huruf kecil) - bit rwsr-xrx diatur.
$ chmod u+s b.pl
$ ls -lt b.pl
-rwsr-xr-x 1 root root 179 Jan 9 01:01 b.pl
suid diaktifkan & bit yang dapat dieksekusi dinonaktifkan (huruf besar S) - bit rwSr-xr-x diatur.
$ chmod u-x b.pl
$ ls -lt b.pl
-rwSr-xr-x 1 root root 179 Jan 9 01:01 b.pl
bit executable guid & group diaktifkan (huruf kecil) - bit rwxr-sr-x diatur.
$ chmod g+s b.pl
$ ls -lt b.pl
-rwxr-sr-x 1 root root 179 Jan 9 01:01 b.pl
panduan diaktifkan & bit yang dapat dieksekusi dinonaktifkan (huruf besar S) - bit rwxr-Sr-x diatur.
$ chmod g-x b.pl
$ ls -lt b.pl
-rwxr-Sr-x 1 root root 179 Jan 9 01:01 b.pl
sedikit lengket
Bit sticky di sisi lain dilambangkan sebagai t
, seperti dengan /tmp
direktori:
$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp
Bit ini seharusnya selalu disebut "bit penghapusan terbatas" mengingat itulah yang benar-benar berkonotasi. Ketika bit mode ini diaktifkan, ia membuat direktori sehingga pengguna hanya dapat menghapus file & direktori di dalamnya yang menjadi pemiliknya.
kutipan
FLAG PENGHAPUSAN YANG TERBATAS ATAU GIGI STICKY
Bendera penghapusan terbatas atau bit sticky adalah bit tunggal, yang interpretasinya tergantung pada jenis file. Untuk direktori, ini
mencegah pengguna yang tidak memiliki hak untuk menghapus atau mengganti nama file dalam direktori kecuali mereka memiliki file atau direktori; ini disebut flag penghapusan terbatas untuk direktori, dan umumnya ditemukan pada direktori yang dapat ditulis oleh dunia seperti / tmp. Untuk file biasa pada beberapa sistem yang lebih lama, bit menyimpan gambar teks program pada perangkat swap sehingga akan memuat lebih cepat saat dijalankan; ini disebut bit yang lengket.