Archive for March, 2008

Sınırlı Kullanıcı Hakları

Temiznet-thGeçen sene yazdığım bir kişisel içerik filtreleme programını (TemizNet) firewall ve içerik filtreleme yazılımlarının sadece yönetici haklarına sahip kullanıcılar tarafından kullanılabileceğini varsayarak kodlamıştım.

Ama bir çok makul nedenden Windows XP, kısıtlı kullanıcı olarak kullanıcılara kullandırtılıyor. Kısıtlı kullanıcı bilgisayara program yükleyemediği ve/veya zararlı programlar bilgisayara yerleşemediği için etkili bir korunma enstrümanı.

Ancak bu durum, kısıtlı kullanıcıların normal programları kullanmasını da engelliyor, çünkü kısıtlı kullanıcı registry e yazamıyor ve programın kurulu olduğu klasördeki dosyaları ya okuyamıyor ya da güncelleyemiyor.

Söz konusu olan bir kişisel firewall yazılımı olduğunda winsock a inject olarak winsock üzerinden geçen trafiği izlemek en iyi çözüm. (Bir ya da daha fazla uygulamaya inject olmak başka bir yazının konusu olabilir) Ancak process lerin çağrılarını araya girip dinlemek için Administrator Haklarına sahip olmak gerekiyor. Bir de firewall rule larının sürekli güncellenerek bir dosyadan okunması gerektiğinde (aynı ayar dosyasını iki uygulama birden açacak, biri yazarken diğeri canlı olarak ondan okuyacak, bu işlemede MMF memory mapped file adı verilir.) yönetici hakları kesin gerekli gibi duruyor.

Biraz araştırma yaptığımda programların büyük çoğunluğunun limitli kullanıcı desteği vermediğini gördüm! Bu durumda programı çalıştırmak için gerekli ayarları yapmak bilgisayar kullanıcısına kalıyor. Eğer siz de bilgisayarınızda kısıtlı kullanıcı için program çalıştırtmak isterseniz ya da kısıtlı kullanıcıların da kullanabileceği programlar yazmak isterseniz bundan sonrasını takip edin!

Ve Çözüm,

1. İlk olarak bu uygulamayı yönetici hakları ile çalıştırtarak ek ayar yapmadan çözmeyi denedim. Exe dosyasına sağ tıklatarak “Run As” seçeneğini seçip Administrator ya da yetkili kullanıcı ismi vererek parolasını girdiğinizde program çalışıyor. Ama bunu her bilgisayar açıldığında yapmak imkansız! Limitli kullanıcıya Administrator şifresini de vermemelisiniz, o zaman bu seçenek sürekli kullanım için uygun değil.

2. Sistem araçlarındaki Zamanlanmış Görevleri kullanmak. Yeni bir zamanlanmış görev eklersiniz ve Ne zaman seçeneğine, “When my computer starts” dedikten sonra Admin yetkili kullanıcı adı şifre bilgisini verirsiniz. Bu seçenek programların 90% sinde çalışacaktır. Eğer elinizde varolan bir programı kısıtlı kullanıcı olarak çalıştıracaksanız bu seçeneği tavsiye ederim.

3. Ancak programcı iseniz, maalesef kurulum manual’inde “Zamanlanmış Görev eklemelisiniz” diyemezsiniz. Kurulum esnasında sorunu çözmelisiniz. Bu durumda, program klasörü ile programın kullanacağı anahtarlar için kısıtlı kullanıcılara yazma/güncelleme yetkisi vermelisiniz. Bunun için:

a. SetACL’i kullanarak programınız içerisinde kullanıcı haklarına müdahale etmelisiniz. http://setacl.sourceforge.net/ Siteden OCX dosyasını çekerek herhangi bir programlama dilinde kullanabilirsiniz. Bu eklenti ile dosya ve klasörlere, registry deki haklara müdahale edebilirsiniz. Kullanımı gayet kolay olan eklenti ile Admin haklarına sahip bir kullanıcı hak kontrolü yapabilir.

b. Setup oluşturduğunuz program (Installshield, InnoSetup..) ile, kurulum esnasında gerekli hakları atamak. Ben bu projede Innosetup kullandım.  Innosetup içerisinde registry ayarlarında:

Root: HKLM; Subkey: SOFTWARE\Programınız; Permissions: users-full; Flags: createvalueifdoesntexist uninsdeletevalue

dediğinizde Programınız altındaki keylere Users grubuna dahil edilmiş tüm kullanıcılar (değiştirilmediği sürece kısıtlı kullanıcılar da) full yetkiye sahip olacaklar ve sorunsuz çalışabilecekler. Ayrıca Files grubunda

Source: ayarlar.dat; DestDir: {app}; Flags: ignoreversion; Permissions: users-full

dediğinizde ayarlar.dat dosyasında tüm kullanıcılar tüm haklara sahip olacaklar. Böylece kurulum anında gerekli ayarlamalar yapılacak ve sorunsuzca programınız çalışacaktır.

Windows Vista cephesinde de durum farklı değil. Aynı yöntemler ile Windows Vista altında da kısıtlı kullanıcı modunda programlarınızı çalıştırabilirsiniz.

Burada ayarlar ile ilgili bilgilendirmeyi üstünkörü geçmiş olabilirim. Benimle iletişim kurarak daha fazla bilgi alabilirsiniz.

Tags: , , , ,

2 Yeni Program 1 Yeni Proje

Yazmayalı yine uzun zaman olmuş. Ara tatilden döndükten sonra yine yoğun bir temponun içine düştüm.

Websniffer-thBir taraftan Nexeye Monitor’un yeni sürümünü test ederken bir taraftan da Nexeye WebSniffer ı tamamlamaya çalışıyorum. Nexeye WebSniffer, Nexeye Monitor ile ücretsiz dağıtılacak ayrı bir program. Ağdaki web paketlerini toplayarak dosyaya dönüştürüyor. Evet, gerçekten. A kullanıcısı web de gezinirken bilgisayar ekranında görüntülenen html, css, jpg… hatta indirdiği MP3, zip… dosyalarının bir kopyası WebSniffer programın kurulu olduğu bilgisayarda oluşturulacak. Hem de A kullanıcısının bilgisayarına hiç bir ek yazılım yüklemeden! Nexeye WebSniffer ın daha kararlı çalışması için testler devam ediyor.

 

Scadadesigner-thBir taraftan Scada projelerinde kullanılmak üzere Scada ekran tasarımı yapan vektörel bir program yazdım. Emsalleri için +200 USD ödemek gerekliliği göz önünde bulundurulduğunda ve her kuruma bir lisans alınması gerektiği düşünüldüğünde bur programı yazmak gerekliliğini hissettim. Sonuçta projelerde kurumlara ücretsiz verilecek bu program ortaya çıktı. SVG export verebilmesi nedeni ile export edilen scada ekranı hem web projelerinde hem de executable programlarda kullanılabilir. Program içerisinde geniş bir sembol kütüphanesi de mevcut. Programa OPC Server desteği de eklersem belki piyasaya bile sürülebilir. (OPC, UDP ile otomasyon cihazlarından bilgisayara veri aktarımı sağlayan bir standart)

 

Bocuk

Ve, Bocuk, hobi projem. Modtronix in SBC65EC ethernet kartı modeli. Üzerinde 12 analog, 32 dijital I/O bulunması otomasyoncuları ilgilendirir galiba. Beni ilgilendiren tarafı üzerinde TCP/IP stack bulunması. Hatta abartıp üzerine bir de web sunucu koymuşlar. Cihaz ın üzerine koyduğum küçük bir program ile 33. portuna gelen web isteklerini internet e forward ettiriyorum. Yani basit bir proxy server gibi çalışıyor. Cihazın isminin Bocuk olmasının nedeni ise, küçük boyutları ile, herhangi bir switch portuna girdiğinizde iç ağdan dışarıya paket kaçırabilmesi ;)

 

Nexeye WebSniffer Nexeye Monitor un ilk yeni sürümüne bundle edilecek, Scada tasarım programını test etmek isterseniz benimle iletişim kurabilirsiniz. Bocuk ise muhtemelen hiç bir zaman yayınlanmayacak bir proje, proxy kaynak kodlarının benden isteyebilirsiniz.