Gerçek ve etkili kullanıcı kimlikleri nasıl çalışır?


13

Normal bir kullanıcı passwd dosyasında değişiklik yapmak istediğinde, kullanıcıya etkin kullanıcı erişimi verilecektir. Kullanıcı geçici olarak root olur ve passwd'yi düzenleyebilir.

Ancak şifrenizi sadece herkes düzenleyebilir, diğerlerini değil? Ancak etkili kullanıcı erişiminiz köküdür. Peki, sizinkinin yanında diğer şifreleri değiştirmenize nasıl izin verilmiyor?

Setuid ile bir program çalıştırdığınızda, aslında etkili kullanıcı kök olduğunda, ancak gerçek kullanıcı kimliği hala sizin adınız olduğunda bu ne anlama gelir?

Yanıtlar:


13

Diğer parolaları değiştiremezsiniz çünkü program izin vermez. Program, çalıştığı için istediği herhangi bir parolayı değiştirmek için sistem izinlerine sahiptir root, ancak program kullanıcıya bu izinleri kullanması için herhangi bir yol vermeyecek şekilde özel olarak tasarlanmıştır.

Kullanıcının geçici olarak root olması pek değil, güvenilir programın root izinleriyle çalışmasıdır. Açıkçası, yalnızca kullanıcıları yalnızca izin vermeleri gerekeni yapmakla sınırlamak için özel olarak tasarlanmış programlar güvenli bir şekilde ayarlanabilir.


Bu yüzden uid'i 0'a ayarlayan bir kabuk açtığımda (setreuid kullanarak), böylece etkili uid kök olacak ama gerçek uid hala benim. Kabuğun özellikle beni engelleyen bir şeye sahip olduğunu düşünmediğim için, o zaman tüm sisteme erişebileceğim anlamına mı geliyor?
starcorn

Saldırı saldırı tekniğini yığını bağlamında merak ediyorum. Kötü niyetli bilgisayar korsanının süper kullanıcı düzeyine sahip bir kabuk açtığı yer.
starcorn

@starcron: Evet. Aslında, saldırılar bir setuid kök kabuğu oluşturmak için bu saldırının nasıl kullanılacağını göstererek gösterilebilir.
David Schwartz

2

Yalnızca root'un etkin kullanıcı kimliğine sahip olmanızla birlikte yalnızca parolanızı değiştirmenize izin verilir, çünkü parola değişikliği sırasında gerçek kullanıcı kimliği etkin kullanıcı kimliği kontrol edilmez. Gerçek kullanıcı kimliğini değil, yalnızca etkili kullanıcı kimliğini değiştirebilirsiniz.
Yalnızca kök kullanıcı, programı ayrıcalıksız kullanıcı olarak çalıştırmak için gerçek kullanıcı kimliğini değiştirebilir. Gerçek kullanıcı kimliği, oturumun başlangıcında ayarlandığı için değiştirilemez.
Bu nedenle, gerçek kullanıcı kimliği değişmediği için (yalnızca sizinki root değil) yalnızca şifreniz değiştirilebilir.


0

Unix'teki ilk hack, setuid kabuk betiğine sembolik bir bağ oluşturmak ve bağlantıyı çağırmaktı -i. Bu, komut dosyasının çağrıldığı gibi sh -isonuçlanır -i, amaçlandığı gibi adlandırılan komut dosyasını çalıştırmak yerine etkileşimli bir kabuk başlatır ve bu da tam güç verir. Etkili kullanıcı kimliği, passwdherhangi bir kullanıcı veya kökün kendisi için dosyayı değiştirmek için kullanılabilir . Buna karşı korunmanın en iyi yolu, SELinux'un güven komut dosyalarının veya programlarının SELinux'un çalışmasına izin verdiği alanın dışında değişmesini önlemek için kullanmaktır.

Başka bir teknik, kök dosya tarafından bile bir kümenin değiştirilemediği önemli dosyalarda değişmez bir bit bulundurmaktır (tek kullanıcı modunda hariç)

Kök olarak, kullanıcıları sisteminizde bir parola olmadan oturum açmaya davet edebilir ve herhangi bir kullanıcı olarak görünebilirsiniz, ancak normal ayrıcalıklı işlemler bunun olmasını önlemek için çok uğraşır.

Bir tür ağ dosyalama sistemleri kullanırsanız, kök kullanıcı, güvenilmeyen bilgisayarların üniversite kampüsü gibi güvenilir bir ağa katılmasına izin veren kök yerine o dosya alanında hiç kimse olarak değerlendirilmez.


0

Parolanızı değiştirmenize izin verilir, çünkü set-password programı, her şeyi yapma gücüne sahip olmasına rağmen, yalnızca parolaları değiştirecek şekilde programlanmıştır. Hangi parolanın değiştirileceğine karar vermek için gerçek kullanıcı kimliğini kontrol eder.

Bir set-uid programı çağırarak bile gerçek kullanıcı kimliğinizi değiştiremeyeceğiniz için, program güvenliği uygulamak için bunu kullanabilir. İşletim sistemi güvenliği set uid root programına bırakmaktadır.

Not: set uid root programı gerçek kullanıcı kimliğini de değiştirebilir (ancak bu kullanım durumunda kullanılmaz).

Uyarı: set uid kökü zararlı olarak kabul edilir (idealden çok daha az). Bugünlerde yetenekleri kullanmalıyız (bkz . Gnu / linux ve http://man7.org/linux/man-pages/man7/capability.7.html dosya izinlerini ayarlamanın farklı yolları nelerdir? ).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.