Linux'ta kullanıcı izinlerinin nasıl çalıştığını anlamaya çalışıyorum. Çekirdek önyükleme yapar ve init
kök olarak başlar , değil mi? Init daha sonra başlangıç komut dosyalarını çalıştırır ve yine root olarak çalışır getty
( agetty
). Agetty sadece kullanıcı adını okur ve login
hala kök gibi çalışır , sanırım. Henüz ilginç bir şey yok. Peki giriş yapmak ne işe yarar? "Giriş yapmaya çalışıyor" ifadesinden daha iyi bir şey bulamadım. Girişte parolanın eşleştiğini (ve her zamanki kullanıcı olarak giriş yapmaya çalıştığımızı) varsayalım, kullanıcı kimliğini nasıl değiştirir? Bunun için sistem çağrısı olması gerektiğini düşündüm ama bulamadım (belki sadece körüm?)
Ayrıca, hakkında su
. su
'setuid' biti ayarlanmış olduğundan, çalıştırdığımızda her zaman kök olarak çalışır. Ancak normal kullanıcı olarak oturum açmasını söylediğimizde, tekrar kullanıcı kimliğini değiştirmesi gerekir. Aynı "büyünün" gerçekleştiğini su
ve login
ne zaman kullanıcıyı değiştirmeleri gerektiğini doğru anladım mı? Eğer öyleyse, neden iki farklı programınız var? Giriş yaparken başka ciddi iş türleri de oluyor mu?