[Gelistirici] sudo/su

Ozan Çağlayan ozancag at gmail.com
6 Tem 2008 Paz 00:48:52 EEST


Selamlar.

Şimdi bu sudo ve su ile ilgili 2007-2008 arasındaki davranış 
değişikliklerinden anlayabildiğimi özetleyip bir çözüm bulmamız 
gerekiyor mu yoksa artık davranış böyledir mi diyoruz, bunu tartışmaya 
açıyorum.

Mevcut sudo ile env değişkenlerinde durum şöyle:

Misal kwrite çalışmadı:

ozan at cyclope ~ $ sudo kwrite
kwrite: cannot connect to X server

Çünkü:

ozan at cyclope ~ $ sudo su
cyclope ozan # echo $DISPLAY

cyclope ozan # echo $PATH
/bin:/usr/bin

2007de bu 2 değişken de korunuyordu. Yeni sudo+yamalar ile bu 
davranıştan vazgeçilmiş. Böyle mi kalmalı yoksa eskisi gibi mi olmalı?

Bir de şöyle bakalım :

ozan at cyclope ~ $ sudo su -
cyclope ~ # echo $DISPLAY

cyclope ~ # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/opt/sun-jre/bin:/opt/sun-jdk/bin:/usr/qt/3/bin:/usr/kde/3.5/sbin:/usr/kde/3.5/bin
--

SU'da da şunlar oluyor:

ozan at cyclope ~ $ su
cyclope ozan # echo $DISPLAY
:0
cyclope ozan # echo $PATH
/bin:/usr/bin

şimdi su ile root kullanıcısına geçtiğimiz de DISPLAY niye korundu?

ozan at cyclope ~ $ su -
cyclope ~ # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/opt/sun-jre/bin:/opt/sun-jdk/bin:/usr/qt/3/bin:/usr/kde/3.5/sbin:/usr/kde/3.5/bin
cyclope ~ # echo $DISPLAY
:0

- parametresi giriş kabuğu haline dönüştürüyor ve bash'e dair bir şeyi 
source ettiği için PATH genişliyor anladığım kadarıyla.

Neyse deneyle böyle, benim kafamı acayip karıştırdı bu iş. Ama mesela 
sudo kullanarak DISPLAY ve PATH'i kaybetmemizin her şey bir yana şöyle 
çok enteresan ve manidar bir yan etkisi var. Configure scriptlerinde Qt 
kütüphanesinin varlığı denetlenirken PATH'e bakıldığı oluyor. Bu 
sebepten "sudo pisi bi pspec.xml" ile paket derlemeye çalışırken 
configure aşamasında "Ah qt yok bu bilgisayarda" diyip build patlıyor.

Görüşmek üzere.

-- 
Ozan Çağlayan
http://cekirdek.pardus.org.tr/~ozan




Gelistirici mesaj listesiyle ilgili daha fazla bilgi