Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah kegunaan linux uid

Apakah kegunaan linux uid

藏色散人
藏色散人asal
2023-03-13 09:40:502984semak imbas

Fungsi uid Linux adalah untuk mengenal pasti pengguna, setiap pengguna mempunyai UID terdapat tiga pengecam UID dalam Linux: 1. RUID, UID sebenar, ID pengguna sebenar 2. EUID, UID berkesan; ID Pengguna; 3. SUID, Saved Set-user-ID, saved set user ID.

Apakah kegunaan linux uid

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

Apakah kegunaan linux uid?

UID dalam Linux

Dalam Linux, UID digunakan untuk mengenal pasti pengguna (seperti alice, bob, root)
Dalam Android , UID digunakan untuk mengenal pasti aplikasi atau perkhidmatan sistem

1. UID dalam Linux

1.1 Tiga nilai UID ​​untuk setiap proses

Setiap pengguna mempunyai UID.

Krisis mengekalkan 3 pengecam UID untuk setiap proses. Tiga pengecam UID ialah RUID (UID sebenar, ID pengguna sebenar) , EUID (UID berkesan, ID pengguna berkesan) , SUID (ID Set-pengguna yang disimpan, disimpan tetapan ID pengguna) .

  • RUID: Pengguna mana yang kami log masuk sekarang, RUID proses yang kami jalankan program untuk jana ialah UID pengguna ini.
  • EUID: merujuk kepada UID yang mana proses semasa sebenarnya berjalan sebagai . Dalam keadaan biasa, EUID adalah sama dengan RUID; tetapi jika fail boleh laku yang sepadan dengan proses mempunyai kebenaran SUID (iaitu, s rws), maka EUID proses ialah UID pemilik daripada fail boleh laku .
  • SUID: Salinan EUID, berkaitan dengan kebenaran SUID.

1.2 Kebenaran SUID bagi fail binari

Ambil passwd fail boleh laku sebagai contoh.
Kebenaran fail kata laluan ialah: -rwsr-xr-x
Pemilik passwd adalah akar, tetapi pengguna lain juga mempunyai kebenaran pelaksanaan untuk passwd, dan passwd sendiri mempunyai keizinan SUID (s rws).
Kemudian, apabila pengguna bukan root melaksanakan fail boleh laku passwd, EUID bagi proses yang dihasilkan ialah UID pengguna root. Dalam erti kata lain, dalam kes ini, proses yang dihasilkan sebenarnya menjalankan fail binari dengan ID pengguna root.

Perlu diambil perhatian bahawa

Kebenaran SUID adalah sensitif masa: hanya sah semasa pelaksanaan fail .

2. fungsi setuid dan setresuid

2.1 fungsi setuid

Prototaip fungsi: int setuid(uid_t uid);

Di Linux, langkah-langkah pelaksanaan fungsi setuid(uid) ialah:

(1) Jika dipanggil oleh proses keistimewaan Root (proses dengan EUID 0), tetapkan RUID, EUID dan SUID bagi proses. ialah uid, kembalikan 0
(2) Jika dipanggil melalui proses kebenaran biasa, dan uid sama dengan RUID atau uid sama dengan SUID, tetapkan EUID proses itu kepada uid, kembalikan 0
(3 ) Jika dipanggil melalui proses kebenaran biasa , dan uid tidak sama dengan RUID atau SUID, tetapkan errno kepada EPERM dan kembalikan -1 (menunjukkan kegagalan pelaksanaan)

Dalam perkara di atas, proses melaksanakan kata laluan, EUID ialah UID pemilik kata laluan, iaitu akar UID pengguna, iaitu 0. Oleh itu, ia tergolong dalam kes (1).

fail su juga mempunyai

kebenaran. Oleh itu, dalam Android, apabila proses biasa memulakan proses shell melalui Runtime.getRuntime().exec("su") untuk melaksanakan su, ia juga termasuk dalam situasi (1). -rwsr-xr-x

2.2 fungsi setresuid

Rujukan https://blog.csdn.net/damotiansheng/article/details/39674115

Prototaip fungsi: int setresuid(uid_t ruid, uid_t euid, uid_t suid);

Apabila salah satu daripada syarat berikut

dipenuhi, setresuid dilaksanakan: ①Euid arus proses ialah akar (AID_ROOT)
②Setiap tiga parameter ruid, euid dan suid adalah sama dengan nilai UID tertentu proses semasa

Contohnya:

    Jika proses semasa RUID=100, EUID=0, SUID=300
  • maka setresuid(200,300,100) boleh dilaksanakan kerana euid asal=0
  • Jika RUID=100, EUID=300, SUID=200 daripada proses semasa
  • Kemudian setresuid(200,300,100) boleh dilaksanakan, kerana ketiga-tiga parameter ini adalah salah satu daripada UID semasa
    Tetapi setresuid(100,200,400) tidak boleh dilaksanakan, kerana 400 tidak sama dengan mana-mana semasa; UID.

3. getuid, fungsi geteuid

getuid mengembalikan

RUID proses semasa geteuid mengembalikan
proses semasa EUID

Cadangan berkaitan: "

Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah kegunaan linux uid. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah bahasa asas Linux?Artikel seterusnya:Apakah bahasa asas Linux?