Cara Menggunakan Kebenaran Khas Setuid, Setgid dan Bit Sticky
- 2593
- 516
- Jerome Quitzon
Objektif
Mengetahui bagaimana kebenaran khas berfungsi, bagaimana mengenal pasti dan menetapkannya.
Keperluan
- Pengetahuan Sistem Kebenaran UNIX/Linux Standard
Kesukaran
Mudah
Konvensyen
- # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
secara langsung sebagai pengguna akar atau dengan menggunakansudo
perintah - $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak
Pengenalan
Biasanya, pada sistem operasi seperti Unix, pemilikan fail dan direktori berdasarkan lalai uid
(pengguna-id) dan gid
(kumpulan-id) pengguna yang menciptakannya. Perkara yang sama berlaku apabila proses dilancarkan: ia berjalan dengan pengguna id-id dan id kumpulan yang berkesan yang memulakannya, dan dengan keistimewaan yang sepadan. Tingkah laku ini dapat diubah suai dengan menggunakan kebenaran khas.
Bit setuid
Apabila setuid
bit digunakan, tingkah laku yang diterangkan di atas, ia diubah suai supaya apabila boleh dilaksanakan dilancarkan, ia tidak berjalan dengan keistimewaan pengguna yang melancarkannya, tetapi dengan pemilik fail sebaliknya. Jadi, sebagai contoh, jika boleh dilaksanakan mempunyai setuid
Bit ditetapkan di atasnya, dan ia dimiliki oleh Root, apabila dilancarkan oleh pengguna biasa, ia akan berjalan dengan keistimewaan root. Harus jelas mengapa ini mewakili risiko keselamatan yang berpotensi, jika tidak digunakan dengan betul.
Contoh yang boleh dilaksanakan dengan set kebenaran setuid adalah Passwd
, utiliti yang boleh kita gunakan untuk menukar kata laluan masuk kami. Kita dapat mengesahkannya dengan menggunakan ls
Perintah:
ls -l /bin /passwd -rwsr -xr -x. 1 Root Root 27768 Feb 11 2017 /bin /Passwd
Cara mengenal pasti setuid
bit? Seperti yang anda perhatikan melihat output arahan di atas, setuid
bit diwakili oleh s
di tempat x
Bit yang boleh dilaksanakan. The s
menunjukkan bahawa bit yang boleh dilaksanakan ditetapkan, jika tidak, anda akan melihat modal S
. Ini berlaku apabila setuid
atau setgid
bit ditetapkan, tetapi bit yang boleh dilaksanakan tidak, menunjukkan pengguna ketidakkonsistenan: setuid
dan setgit
bit tidak mempunyai kesan jika bit boleh dilaksanakan tidak ditetapkan. Bit setuid tidak memberi kesan kepada direktori.
Bit setgid
Tidak seperti setuid
bit, yang setgid
Bit mempunyai kesan pada kedua -dua fail dan direktori. Dalam kes pertama, fail yang mempunyai setgid
set bit, apabila dilaksanakan, bukannya berjalan dengan keistimewaan kumpulan pengguna yang memulakannya, berjalan dengan kumpulan yang memiliki fail: dengan kata lain, id kumpulan proses akan sama dari itu fail.
Apabila digunakan pada direktori, sebaliknya, setgid
Bit mengubah tingkah laku standard supaya kumpulan fail yang dibuat di dalam direktori tersebut, tidak akan menjadi pengguna yang menciptanya, tetapi direktori induk itu sendiri. Ini sering digunakan untuk meringankan perkongsian fail (fail akan diubah suai oleh semua pengguna yang merupakan sebahagian daripada kumpulan tersebut). Sama seperti setuid, bit setgid dengan mudah dapat dilihat (dalam kes ini pada direktori ujian):
ls -ld test drwxrwsr -x. 2 EGDOC EGDOC 4096 1 Nov 17:25 Ujian
Kali ini s
hadir menggantikan bit yang boleh dilaksanakan di sektor kumpulan.
Bit melekit
Bit Sticky berfungsi dengan cara yang berbeza: sementara ia tidak memberi kesan kepada fail, apabila digunakan pada direktori, semua fail dalam direktori tersebut akan diubah suai hanya oleh pemiliknya. Kes biasa di mana ia digunakan, melibatkan /TMP
direktori. Biasanya direktori ini boleh ditulis oleh semua pengguna pada sistem, jadi untuk membuat mustahil bagi satu pengguna untuk memadamkan fail yang lain, bit melekit ditetapkan:
$ ls -ld /tmp drwxrwxrwt. 14 Root Root 300 Nov 1 16:48 /TMP
Dalam kes ini pemilik, kumpulan, dan semua pengguna lain, mempunyai keizinan penuh di direktori (baca, tulis dan laksanakan). Bit melekit dapat dikenal pasti oleh a t
yang dilaporkan di mana biasanya boleh dilaksanakan x
Bit ditunjukkan, di bahagian "Lain". Sekali lagi, huruf kecil t
menunjukkan bahawa bit yang boleh dilaksanakan juga hadir, jika tidak, anda akan melihat modal T
.
Cara menetapkan bit khas
Sama seperti kebenaran biasa, bit khas boleh diberikan dengan chmod
perintah, menggunakan angka atau Ugo/RWX
format. Dalam bekas kes setuid
, setgid
, dan melekit
bit diwakili masing -masing dengan nilai 4, 2 dan 1. Jadi sebagai contoh jika kita mahu menetapkan setgid
Sedikit di direktori yang akan kami jalankan:
$ chmod 2775 ujian
Dengan arahan ini kami menetapkan setgid
Sedikit di direktori, (dikenal pasti oleh yang pertama dari empat nombor), dan memberikan keistimewaan penuh ke atasnya kepada pemiliknya dan kepada pengguna yang menjadi ahli kumpulan yang direktori itu, ditambah dengan membaca dan melaksanakan kebenaran untuk semua pengguna lain (ingat bit melaksanakan pada direktori bermaksud bahawa pengguna dapat CD
ke dalamnya atau gunakan ls
untuk menyenaraikan kandungannya).
Cara lain kita dapat menetapkan bit keizinan khas adalah menggunakan sintaks UGO/RWX:
ujian $ chmod g+s
Untuk memohon setuid
Sedikit ke fail, kami akan lari:
$ chmod u+s fail
Semasa memohon sedikit melekit:
$ chmod o+t ujian
Penggunaan kebenaran khas boleh sangat berguna dalam beberapa situasi, tetapi jika tidak digunakan dengan betul, dapat memperkenalkan kelemahan yang serius, jadi berfikir dua kali sebelum menggunakannya.
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Buat dan konfigurasikan direktori setgid untuk kerjasama -..
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Cara membuat Modify dan Padam Akaun Pengguna di Linux
- Fail Konfigurasi Linux: 30 teratas yang paling penting
- Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
- Bolehkah linux mendapat virus? Meneroka kelemahan Linux ..
- Muat turun linux
- Cara Dual Boot Kali Linux dan Windows 10
- « Cara melaksanakan skrip shell secara automatik pada boot startup pada sistem linux
- Cara Meningkatkan Debian 8 Jessie ke Debian 9 Stretch »