Cara Menggunakan Kebenaran Khas Setuid, Setgid dan Bit Sticky

Cara Menggunakan Kebenaran Khas Setuid, Setgid dan Bit Sticky

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 menggunakan sudo 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