Cara menggunakan izin khusus setuid, setgid, dan bit lengket
- 1184
- 123
- John Ratke
Objektif
Mengetahui cara kerja izin khusus, cara mengidentifikasi dan mengaturnya.
Persyaratan
- Pengetahuan tentang sistem izin unix/linux standar
Kesulitan
MUDAH
Konvensi
- # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
langsung sebagai pengguna root atau dengan menggunakansudo
memerintah - $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa
Perkenalan
Biasanya, pada sistem operasi seperti Unix, kepemilikan file dan direktori didasarkan pada default uid
(pengguna-id) dan gid
(grup-id) dari pengguna yang membuatnya. Hal yang sama terjadi ketika suatu proses diluncurkan: Ini berjalan dengan pengguna-ID yang efektif dan grup-ID dari pengguna yang memulainya, dan dengan hak istimewa yang sesuai. Perilaku ini dapat dimodifikasi dengan menggunakan izin khusus.
Bit setuid
Ketika setuid
Bit digunakan, perilaku yang dijelaskan di atas dimodifikasi sehingga ketika executable diluncurkan, ia tidak berjalan dengan hak istimewa pengguna yang meluncurkannya, tetapi dengan pemilik file sebagai gantinya. Jadi, misalnya, jika executable memiliki setuid
bit diatur di atasnya, dan dimiliki oleh root, ketika diluncurkan oleh pengguna normal, itu akan berjalan dengan hak istimewa root. Seharusnya jelas mengapa ini mewakili risiko keamanan potensial, jika tidak digunakan dengan benar.
Contoh yang dapat dieksekusi dengan set izin setuid adalah passwd
, utilitas yang dapat kita gunakan untuk mengubah kata sandi login kita. Kita dapat memverifikasi itu dengan menggunakan ls
memerintah:
ls -l /bin /passwd -rwsr -xr -x. 1 root root 27768 Feb 11 2017 /bin /passwd
Bagaimana mengidentifikasi setuid
sedikit? Seperti yang pasti Anda perhatikan melihat output perintah di atas, setuid
Bit diwakili oleh S
di tempat X
dari bit yang dapat dieksekusi. Itu S
menyiratkan bahwa bit yang dapat dieksekusi ditetapkan, jika tidak Anda akan melihat modal S
. Ini terjadi saat setuid
atau setgid
Bit diatur, tetapi bit yang dapat dieksekusi tidak, menunjukkan kepada pengguna ketidakkonsistenan: setuid
Dan setgit
Bit tidak berpengaruh jika bit yang dapat dieksekusi tidak diatur. Bit setuid tidak berpengaruh pada direktori.
Bit setgid
tidak seperti setuid
Bit, the setgid
Bit memiliki efek pada kedua file dan direktori. Dalam kasus pertama, file yang memiliki setgid
bit set, saat dieksekusi, alih -alih berjalan dengan hak istimewa kelompok pengguna yang memulainya, berjalan dengan kelompok yang memiliki file: dengan kata lain, ID grup dari proses akan sama dengan yang dari itu berkas.
Saat digunakan pada direktori, sebagai gantinya, setgid
Bit mengubah perilaku standar sehingga kelompok file yang dibuat di dalam direktori tersebut, tidak akan menjadi pengguna yang membuatnya, tetapi dari direktori induk itu sendiri. Ini sering digunakan untuk memudahkan berbagi file (file akan dapat dimodifikasi oleh semua pengguna yang merupakan bagian dari grup tersebut). Sama seperti setuid, bit setgid dapat dengan mudah terlihat (dalam hal ini pada direktori tes):
LS -LD TEST DRWXRWSR -X. 2 EGDOC EGDOC 4096 Tes 1 November
Kali ini S
hadir di tempat bit yang dapat dieksekusi di sektor grup.
Bit lengket
Bit lengket berfungsi dengan cara yang berbeda: Meskipun tidak berpengaruh pada file, saat digunakan pada direktori, semua file dalam direktori tersebut hanya akan dimodifikasi oleh pemiliknya. Kasus khas yang digunakan, melibatkan /tmp
direktori. Biasanya direktori ini dapat ditulis oleh semua pengguna pada sistem, jadi untuk membuat tidak mungkin bagi satu pengguna untuk menghapus file yang lain, bit lengket diatur:
$ ls -ld /tmp drwxrwxrwt. 14 root root 300 1 Nov 16:48 /tmp
Dalam hal ini pemilik, grup, dan semua pengguna lain, memiliki izin lengkap pada direktori (baca, tulis dan jalankan). Bit lengket dapat diidentifikasi dengan a T
yang dilaporkan jika biasanya dapat dieksekusi X
Bit ditampilkan, di bagian "Lainnya". Sekali lagi, huruf kecil T
menyiratkan bahwa bit yang dapat dieksekusi juga ada, jika tidak Anda akan melihat modal T
.
Cara mengatur bit khusus
Sama seperti izin normal, bit khusus dapat ditugaskan dengan Chmod
perintah, menggunakan numerik atau UGO/RWX
format. Dalam kasus sebelumnya setuid
, setgid
, Dan lengket
Bit diwakili masing -masing dengan nilai 4, 2 dan 1. Jadi misalnya jika kita ingin mengatur setgid
sedikit di direktori yang akan kami jalankan:
$ chmod 2775 tes
Dengan perintah ini kami mengatur setgid
sedikit pada direktori, (diidentifikasi oleh yang pertama dari empat angka), dan memberikan hak istimewa penuh kepada pemiliknya dan kepada pengguna yang merupakan anggota grup yang dimiliki direktori, ditambah membaca dan menjalankan izin untuk semua pengguna lain lainnya (Ingat bit eksekusi pada direktori berarti bahwa pengguna dapat CD
ke dalamnya atau gunakan ls
Untuk mendaftar kontennya).
Cara lain kita dapat mengatur bit izin khusus adalah dengan menggunakan sintaks UGO/RWX:
$ chmod g+s tes
Untuk menerapkan setuid
Bit ke sebuah file, kami akan menjalankan:
$ chmod u+s file
Sedangkan untuk menerapkan bit lengket:
$ chmod o+t uji
Penggunaan izin khusus bisa sangat berguna dalam beberapa situasi, tetapi jika tidak digunakan dengan benar, dapat memperkenalkan kerentanan yang serius, jadi pikirkan dua kali sebelum menggunakannya.
Tutorial Linux Terkait:
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Buat dan konfigurasikan direktori setGid untuk kolaborasi -…
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Cara membuat Modifikasi dan Hapus Akun Pengguna di Linux
- File Konfigurasi Linux: 30 Teratas Paling Penting
- Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
- Can Linux mendapatkan virus? Menjelajahi kerentanan Linux…
- Unduh Linux
- Cara Dual Boot Kali Linux dan Windows 10
- « Cara secara otomatis menjalankan skrip shell saat startup boot di Systemd Linux
- Cara meningkatkan debian 8 jessie ke debian 9 peregangan »