Saya relatif baru dengan konsep yang disebutkan dalam pertanyaan dan membaca tentang mereka dari sumber yang berbeda hanya membuat mereka lebih membingungkan. Jadi ini yang saya mengerti sejauh ini:
Ketika kami diberikan izin untuk sebuah file, mereka terlihat seperti ini:
-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin
Kami berasumsi bahwa pengguna user2
yang berada di grup users
mencoba mengeksekusi file.bin
. Jika bit setuid tidak disetel, ini berarti bahwa RUID dan EUID file.bin
sama dengan UID user2
. Tetapi karena bit setuid diatur, ini berarti bahwa RUID sekarang sama dengan UID dari user2
, sedangkan EUID adalah UID dari pemilik file user1
,.
Pertanyaan saya adalah:
- Apa perbedaan antara pemilik file dan
root
? Apakahroot
memiliki izin yang sama dengan pemiliknya? Atau akankah kita memerlukan entri terpisah dalam daftar izinroot
? - Perbedaan antara RUID dan EUID?
- Seperti yang saya pahami, RUID dan EUID hanya diterapkan pada proses. Jika itu masalahnya, mengapa mereka memiliki nilai id pengguna?
- Jika RUID adalah pengguna yang menciptakan proses, dan EUID adalah pengguna yang sedang menjalankan proses, maka kalimat pertama dari jawaban pertama dalam pertanyaan ini tidak masuk akal bagi saya.
- Apakah saya mengerti dengan benar apa yang dilakukan bit setuid?
setuid
bit set.root
) dapat mengatur EUID dan RUID dengan nilai-nilai sewenang-wenang (misalnya,login
,su
, dansudo
program melakukannya). Secara umum, sekali proses istimewa mengubah UID-nya menjadi nilai-nilai tidak nol, itu tidak lagi istimewa dan tidak bisa menjadiroot
lagi. Lihat halaman manual setuid (2) , seteuid (2) , dan setreuid (2) .setfsuid()
saat ini tidak dibutuhkan dan harus dihindari dalam aplikasi baru.”