2013-04-12 11 views
5

getsockopt() elde edilebilir parodiunix soket (dosya sistemi priz) (kök gibi) akran kimlik bir (uyumlu) yolu, seçenek SO_PEERCRED var mı?UNIX soketleri: getsockopt() SO_PEERCRED'i taklit etmek mümkün mü?

Arka plan: I SO_PEERCRED aracılığı bağlanır işlemin UID kontrol eden bir sunucu uygulaması (I değiştiremez olan) bağlanması gereken
. Ben de, root olarak uygulamaya için bağlamak edebilmek için bilgiyi taklit etmek istiyorum.

GÜNCELLEME

soru netleştirmek için:
Ben sunucusu belirli bir eş UID/GID gördüğü bir invazif olmayan bir şekilde arıyorum. Çözümler çekirdek değiştirmek (veya çekirdek modüllerinin kullanımını yapmaya) veya hangi veya onun yükleme/herhangi bir şekilde süreci bağlama (LD_PRELOAD, sistem çağrı interceptions vs.) sunucu işlemini değiştirir gerekir vazgeçilmiştir. Herhangi bir özel gereksinimleri olmadan sunucuya (veya genel unix) Herhangi linux çalışırken

Temelde, çözüm çalışmalıdır. Sunucu işlemi zaten çalışıyor olabilir.

+1

Eğer root'unuz varsa, neden sadece 'setuid' değil? Bunu tam kontrollü çocuk süreçlerinden yapabilirdiniz, böylece ayrıcalığı kaybetmekten kaçınabilirsiniz. – nneonneo

+0

Emin değilim, ancak Linux altında,/proc//fdinfo/ 'da sekizlik bir değer öneki bayraklar var. – alk

+1

Sunucu işleminin başlatılmasını kontrol edebilir misiniz, örneğin, bildirilen kimlik bilgilerini değiştirmek için kütüphane işlevini/sistem çağrısı içeriğini değiştirmek için bir LD_PRELOAD kullanabilir misiniz? –

cevap