15 Ağustos 2010 Pazar

Guestlogin projesi gelişmeleri

Haftasonumu projedeki sıkıntıları araştırmakla geçirdim diyebilirim. 2 tane sorun var şimdilik bilinen. Bunlardan biri ssh bağlantı sağlanamaması, öteki ise kdm den bağlantı sağlanamaması.

Ssh'daki sorun da şu şekilde: Eğer normal bağlanmaya çalışırsam kesinlikle bağlanmıyor ve

Connection closed by ::1

Şeklinde hata alıyorum. Sanırım bunun sebebi var olmayan bir kullanıcı ile bağlanmaya çalıştığım için oluyor dedim ve "/etc/ssh/sshd_config" dosyasında bununla ilgili bir şeyler aradım. Sonuç olarak yapılandırma dosyasında 3 tane değişken ile oynamak gerekiyormuş. Bunlar:

UsePAM yes
PasswordAuthentication no
ChallengeResponseAuthentication no

Bunları bu şekilde düzelttikten sonra (kimisinin başında # vardı kimisi yes idi no yaptım) tekrar denedim. Bu sefer de:

Permission denied (publickey).

Hatası aldım. Bunu da araştırdığımda openssh'ın PAM'daki kullanıcı ismi değişikliğini kabul etmemesinin buna sebep olabileceğini öğrendim. Bununla ilgili bir yama buldum ve Pazartesi günü (16.08.2010) bunu uyguladıktan sonra sonuçları ile birlikte buraya yazacağım.

XDM sorununun çözümünü bulmak için başta google'da ayrıntılı bir arama yaptım, fakat hala bir çözüm yoktu. Sonra xdm/kdm'de kullanılan benim projeme benzer modülleri araştırdım. Zaten benimki gibi bir proje bulmak çok zordu ama parmak izi gibi kimlik doğrulama modülleri kullananlara baktım. Kaynak kodunu indirip inceledim, bir kaç şey gözüme çarptı.

Kaynak kod içerisinde $XAUTHORITY ortam değişkenine "$HOME/.Xauthority" değerini atıyorlar ve $DISPLAY ortam değişkenine de pam_tty değerini atıyorlar(pam_python'daki karşılığı pamh.tty oluyor). Ben de bunları gördükten sonra. os.environ[]'u kullanarak bu ortam değişkenlerine gerekli değerleri atadım ama hala sorun çözülmemişti.

Sonra sorun acaba kullanıcıyı PAM modülü üzerinden oluşturduğum için mi oluyor diye şüphelendim. Bunun için yarattığım kullanıcı adını da girilen kullanıcı adıyla aynı yaptım (yani guest adında kullanıcı oluşturdum guestX değil) ve sorunsuz bir şekilde çalıştı.

Kullanıcıyı PAM modülü içerisinde yaratmanın da bir sıkıntı yaratmadığını anladıktan sonra aklıma acaba kullanıcı adı değiştirmenin bir sorun yaratıp yaratmadığı geldi. Bunun için de kullanıcı adını varolan bir kullanıcı adına yönlendirdim. Yani:

pamh.user = sistemde_varolan_bir_kullanici

şeklinde atadım. Ve bunda da sorunsuz bir şekilde açıldı. Benim aklıma gelenler arasında geriye tek bir seçenek kalmıştı. Bu da girilen kullanıcı adı ile PAM tarafından verilen kullanıcı adının aynı olmamasıydı. Yani bir şekilde KDM, girilen kullanıcı adını alıyor bir yerlere yazıyor ya da onunla ilgili kimlik doğrulaması yapmaya çalışıyordu.

KDM nin de kendi kimlik doğrulamaları vb. şeyler var mı diye bir araştırma yaptım. Xauth'u biraz inceledim. Burada cevap bulamayınca "/etc/X11/kdm/" içerisindeki yapılandırma dosyalarında işime yarayacak herhangi bir şey aradım ama nafile. Sanırım şimdi yapmam gereken şey KDM nin kendi kimlik doğrulamasını kapatmak veya bunu PAM dan sonra yapmasını sağlamak. Bunun için de KDM nin kaynak kodunu indirdim ve incelemeye başladım. Şimdilik kodu inceleyip anlama kısmındayım. Gerçi daha yeni başladım KDM nin kaynak kodunu incelemeye ama yarın Pardus ofisinde bu incelemeyi hızlandırıp bu KDM sorununu da çözmeyi düşünüyorum.

Hiç yorum yok: