GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Antara Pemilik/root Dan Ruid/euid?

Saya relatif baru dengan konsep yang disebutkan dalam pertanyaan dan membaca tentang mereka dari sumber yang berbeda hanya membuat mereka lebih membingungkan. Jadi inilah yang saya pahami sejauh ini:

Ketika kita diberi 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 siapa yang ada di grup users mencoba mengeksekusi file.bin . Jika bit setuid tidak disetel, ini berarti RUID dan EUID dari file.bin sama dengan UID user2 . Tetapi karena bit setuid disetel, ini berarti RUID sekarang sama dengan UID user2 , sedangkan EUID adalah UID dari pemilik file, user1 .

Pertanyaan saya adalah:

  1. Apa perbedaan antara pemilik file dan root ? Apakah root memiliki izin yang sama dengan pemiliknya? Atau apakah kami memerlukan entri terpisah dalam daftar izin untuk root ?
  2. Perbedaan antara RUID dan EUID?
    • Seperti yang saya pahami, RUID dan EUID hanya diterapkan pada proses. Jika demikian, mengapa mereka memiliki nilai id pengguna?
    • Jika RUID adalah pengguna yang membuat 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 memahami dengan benar apa yang dilakukan bit setuid?

Jawaban yang Diterima:

Ini jawabannya:

  1. root selalu penuh akses ke file dan direktori. Pemilik file biasanya juga memilikinya, tetapi ini tidak selalu benar. Misalnya:

    -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

    user1 adalah pemilik; namun mereka hanya dapat membaca dan jalankan , tetapi root masih memiliki akses penuh (rwx ) ke file.

  2. RUID adalah ID Pengguna Asli dan tidak pernah (hampir) berubah. Jika user2 masuk ke sistem, shell kemudian diluncurkan dengan ID aslinya diatur ke user2 . Semua proses yang mereka mulai dari shell akan mewarisi ID asli user2 sebagai ID asli mereka.

    EUID adalah ID Pengguna Efektif , itu berubah untuk proses (bukan untuk pengguna) yang dijalankan pengguna yang telah menyetel setuid bit .

    Jika user2 mengeksekusi file.bin , RUID akan menjadi user2 dan EUID dari proses yang dimulai adalah user1 .

Mari kita gunakan kasus passwd :

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • Ketika user2 ingin mengubah sandinya , mereka mengeksekusi /usr/bin/passwd .

  • RUID akan menjadi user2 tetapi EUID dari proses itu adalah root .

  • user2 dapat menggunakan passwd untuk mengubah hanya kata sandi mereka sendiri karena secara internal passwd memeriksa RUID dan, jika bukan root , tindakannya akan terbatas pada sandi pengguna sebenarnya.

  • EUID harus menjadi root dalam hal passwd karena prosesnya perlu menulis ke /etc/passwd dan/atau /etc/shadow .


Linux
  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Perbedaan antara ${} dan $() di Bash

  3. perbedaan antara cgroup dan namespace

  1. Perbedaan Antara 2>&-, 2>/dev/null, |&, &>/dev/null Dan>/dev/null 2>&1?

  2. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  3. Perbedaan Antara Eot dan Eof?

  1. Perbedaan Antara [0-9], [[:digit:]] Dan D?

  2. Perbedaan Antara Aplikasi Gtk Dan Qt?

  3. Perbedaan Antara Ukuran Blok Dan Ukuran Cluster?