1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!-- 4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 5 This file is generated from xml source: DO NOT EDIT 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 --> 8<title>SuEXEC Desteği - Apache HTTP Sunucusu</title> 9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" /> 12<script src="/style/scripts/prettify.min.js" type="text/javascript"> 13</script> 14 15<link href="/images/favicon.ico" rel="shortcut icon" /></head> 16<body id="manual-page"><div id="page-header"> 17<p class="menu"><a href="/mod/">Modüller</a> | <a href="/mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="/glossary.html">Terimler</a> | <a href="/sitemap.html">Site Haritası</a></p> 18<p class="apache">Apache HTTP Sunucusu Sürüm 2.4</p> 19<img alt="" src="/images/feather.gif" /></div> 20<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="./">Sürüm 2.4</a></div><div id="page-content"><div id="preamble"><h1>SuEXEC Desteği</h1> 23<div class="toplang"> 24<p><span>Mevcut Diller: </span><a href="/en/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | 25<a href="/fr/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 26<a href="/ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 27<a href="/ko/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 28<a href="/tr/suexec.html" title="Türkçe"> tr </a></p> 29</div> 30 31 <p><strong>SuEXEC</strong> özelliği, Apache HTTP Sunucusu kullanıcılarına 32 <strong>CGI</strong> ve <strong>SSI</strong> programlarını sunucunun 33 aidiyetinde çalıştığı kullanıcıdan farklı bir kullanıcının aidiyetinde 34 çalıştırma olanağı verir. Normalde, <strong>CGI</strong> ve 35 <strong>SSI</strong> programlarını çalıştıranla sunucuyu çalıştıran 36 aynı kullanıcıdır.</p> 37 38 <p>Gerektiği gibi kullanıldığında bu özellik, kullanıcılara 39 <strong>CGI</strong> ve <strong>SSI</strong> programlarını çalıştırma 40 ve geliştirmeye izin vermekle ortaya çıkan güvenlik risklerini azaltır. 41 Bununla birlikte, <strong>suEXEC</strong> gerektiği gibi 42 yapılandırılmadığı takdirde bazı sorunlara yol açabilir ve bilgisayar 43 güvenliğinizde yeni delikler ortaya çıkmasına sebep olabilir. 44 Güvenlikle ilgili mevcut sorunlarla başa çıkmada ve <em>setuid 45 root</em> programları yönetmekte bilgi ve deneyim sahibi değilseniz 46 <strong>suEXEC</strong> kullanmayı kesinlikle düşünmemenizi 47 öneririz.</p> 48 </div> 49<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#before">Başlamadan önce</a></li> 50<li><img alt="" src="/images/down.gif" /> <a href="#model">SuEXEC Güvenlik Modeli</a></li> 51<li><img alt="" src="/images/down.gif" /> <a href="#install">suEXEC’in Yapılandırılması ve Kurulumu</a></li> 52<li><img alt="" src="/images/down.gif" /> <a href="#enable">suEXEC’in etkin kılınması ve iptal edilmesi</a></li> 53<li><img alt="" src="/images/down.gif" /> <a href="#usage">SuEXEC’in kullanımı</a></li> 54<li><img alt="" src="/images/down.gif" /> <a href="#debug">SuEXEC ve hata ayıklama</a></li> 55<li><img alt="" src="/images/down.gif" /> <a href="#jabberwock">Uyarılar ve Örnekler</a></li> 56</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div> 57<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 58<div class="section"> 59<h2><a name="before" id="before">Başlamadan önce</a></h2> 60 61 <p>Belgeye balıklama dalmadan önce, suexec'i kullanacağınız ortam ve 62 kendiniz hakkında yapılmış çeşitli kabuller hakkında bilgi sahibi 63 olmalısınız.</p> 64 65 <p>Öncelikle, üzerinde <strong>setuid</strong> va <strong>setgid</strong> 66 işlemlerinin yapılabildiği Unix türevi bir işletim sistemi 67 kullandığınızı varsayıyoruz. Tüm komut örnekleri buna dayanarak 68 verilmiştir. Bu desteğe sahip başka platformlar varsa onlardaki 69 yapılandırma burada anlattığımız yapılandırmadan farklı olabilir.</p> 70 71 <p>İkinci olarak, bilgisayarınızın güvenliği ve yönetimi ile ilgili bazı 72 temel kavramları bildiğinizi kabul ediyoruz. Buna 73 <strong>setuid/setgid</strong> işlemlerinin sisteminiz ve güvenlik 74 seviyesi üzerindeki etkilerini bilmek dahildir.</p> 75 76 <p>Üçüncü olarak, <strong>suEXEC</strong> kodunun 77 <strong>değiştirilmemiş</strong> bir sürümünü kullandığınızı 78 varsayıyoruz. Tüm suEXEC kodu, geliştiricilerin yanında sayısız beta 79 kullanıcısı tarafından dikkatle incelenmiş ve denenmiştir. Kodların hem 80 basit hem de sağlam bir şekilde güvenli olması için gerekli tüm 81 önlemler alınmıştır. Bu kodun değiştirilmesi beklenmedik sorunlara ve 82 yeni güvenlik risklerine yol açabilir. Özellikle güvenlikle ilgili 83 programlarda deneyimli değilseniz suEXEC kodunda kesinlikle bir 84 değişiklik yapmamalısınız. Değişiklik yaparsanız kodlarınızı gözden 85 geçirmek ve tartışmak üzere Apache HTTP Sunucusu geliştirme ekibi ile 86 paylaşmanızı öneririz.</p> 87 88 <p>Dördüncü ve son olarak, Apache HTTP Sunucusu geliştirme ekibinin 89 suEXEC’i öntanımlı httpd kurulumunun bir parçası yapmama kararından 90 bahsetmek gerekir. Bunun sonucu olarak, suEXEC yapılandırması sistem 91 yöneticisinin ayrıntılı bir incelemesini gerektirir. Gerekli incelemeden 92 sonra yönetici tarafından suEXEC yapılandırma seçeneklerine karar 93 verilip, normal yollardan sisteme kurulumu yapılır. Bu seçeneklerin 94 belirlenmesi, suEXEC işlevselliğinin kullanımı sırasında sistem 95 güvenliğini gerektiği gibi sağlamak için yönetici tarafından dikkatle 96 saptanmayı gerektirir. Bu sürecin ayrıntılarının yöneticiye bırakılma 97 sebebi, suEXEC kurulumunu, suEXEC’i dikkatle kullanacak yeterliliğe sahip 98 olanlarla sınırlama beklentimizdir.</p> 99 100 <p>Hala bizimle misiniz? Evet mi? Pekala, o halde devam!</p> 101</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 102<div class="section"> 103<h2><a name="model" id="model">SuEXEC Güvenlik Modeli</a></h2> 104 105 <p>SuEXEC yapılandırması ve kurulumuna girişmeden önce biraz da 106 gerçekleşmesini istediğiniz güvenlik modelinin ayrıntıları üzerinde 107 duralım. Böylece, suEXEC’in içinde olup bitenleri ve sisteminizin 108 güvenliği için alınacak önlemleri daha iyi anlayabilirsiniz.</p> 109 110 <p><strong>suEXEC</strong> işlevselliği, Apache HTTP Sunucusu tarafından 111 gerektiği takdirde artalanda çalıştırılan bir setuid programa dayanır. 112 Bu program, bir CGI veya SSI betiğine bir HTTP isteği yapıldığı zaman, 113 bu betiği, yöneticinin ana sunucunun aidiyetinde çalıştığı kullanıcıdan 114 farklı olarak seçtiği bir kullanıcının aidiyetinde çalıştırmak için 115 çağrılır. Böyle bir istek geldiğinde, Apache httpd artalandaki setuid 116 programına, HTTP isteği yapılan programın ismiyle beraber aidiyetinde 117 çalışacağı kullanıcı ve grup kimliklerini de aktarır.</p> 118 119 <p>Artalanda çalıştırılan setuid program başarıyı ve başarısızlığı 120 aşağıdaki süreci izleyerek saptar. Bunlardan herhangi biri başarısız 121 olursa program başarısızlık durumunu günlüğe kaydeder ve bir hata 122 vererek çıkar. Aksi takdirde çalışmaya devam eder.</p> 123 124 <ol> 125 <li> 126 <strong>Setuid programı çalıştıran kullanıcı sistemin geçerli 127 kullanıcılarından biri mi?</strong> 128 129 <p class="indent">Bu, setuid programı çalıştıran kullanıcının 130 sistemin gerçek bir kullanıcısı olduğunudan emin olunmasını sağlar. 131 </p> 132 </li> 133 134 <li> 135 <strong>Setuid program yeterli sayıda argümanla çağrılmış mı? 136 </strong> 137 138 <p class="indent">Apache HTTP Sunucusunun artalanda çağırdığı 139 setuid program ancak yeterli sayıda argüman sağlandığı takdirde 140 çalışacaktır. Argümanların sayısını ve sırasını Apache HTTP sunucusu 141 bilir. Eğer setuid program yeterli sayıda argümanla çağrılmamışsa 142 ya kendisinde bir değişiklik yapılmıştır ya da kurulu Apache httpd 143 çalıştırılabilirinin suEXEC ile ilgili kısmında yanlış giden bir 144 şeyler vardır.</p> 145 </li> 146 147 <li> 148 <strong>Bu geçerli kullanıcının bu setuid programı çalıştırma 149 yetkisi var mı?</strong> 150 151 <p class="indent">Sadece tek bir kullanıcı (Apache’nin aidiyetinde 152 çalıştığı kullanıcı) bu programı çalıştırmaya yetkilidir.</p> 153 </li> 154 155 <li> 156 <strong>Hedef CGI veya SSI programı hiyerarşik olarak güvenliği 157 bozacak bir dosya yolu üzerinde mi?</strong> 158 159 <p class="indent">Hedef CGI veya SSI programının dosya yolu '/' veya 160 '..' ile başlıyor mu? Buna izin verilmez. Hedef CGI veya SSI 161 programı suEXEC’in belge kök dizininde yer almalıdır (aşağıda 162 <code>--with-suexec-docroot=<em>DİZİN</em></code> seçeneğine 163 bakınız).</p> 164 </li> 165 166 <li> 167 <strong>Hedef kullanıcı ismi geçerli mi?</strong> 168 169 <p class="indent">Hedef kullanıcı mevcut mu?</p> 170 </li> 171 172 <li> 173 <strong>Hedef grup ismi geçerli mi?</strong> 174 175 <p class="indent">Hedef grup mevcut mu?</p> 176 </li> 177 178 <li> 179 <strong>Hedef kullanıcı <code>root</code> değil, değil mi?</strong> 180 181 <p class="indent">Mevcut durumda, <code>root</code> kullanıcısının 182 CGI/SSI programlarını çalıştırmasına izin verilmemektedir.</p> 183 </li> 184 185 <li> 186 <strong>Hedef kullanıcı kimliği asgari kullanıcı numarasından 187 <em>BÜYÜK</em> mü?</strong> 188 189 <p class="indent">Asgari kullanıcı numarası yapılandırma sırasında 190 belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin 191 verilecek olası en düşük kullanıcı numarasını belirlemeniz mümkün 192 kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için 193 yararlıdır.</p> 194 </li> 195 196 <li> 197 <strong>Hedef grup <code>root</code> değil, değil mi?</strong> 198 199 <p class="indent"><code>root</code> grubunun CGI/SSI 200 programlarını çalıştırmasına izin verilmemektedir.</p> 201 </li> 202 203 <li> 204 <strong>Hedef grup numarası asgari grup numarasından 205 <em>BÜYÜK</em> mü?</strong> 206 207 <p class="indent">Asgari grup numarası yapılandırma sırasında 208 belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin 209 verilecek olası en düşük grup numarasını belirlemeniz mümkün 210 kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için 211 yararlıdır.</p> 212 </li> 213 214 <li> 215 <strong>Apache’nin artalanda çağırdığı setuid program hedef 216 kullanıcı ve grubun aidiyetine geçebildi mi?</strong> 217 218 <p class="indent">Bu noktadan itibaren program setuid ve setgid 219 çağrıları üzerinden hedef kullanıcı ve grubun aidiyetine geçer. 220 Erişim grubu listesi de ayrıca kullanıcının üyesi olduğu tüm 221 gruplara genişletilir.</p> 222 </li> 223 224 <li> 225 <strong>Hedef CGI/SSI programının bulunduğu dizine geçebildik mi? 226 </strong> 227 228 <p class="indent">Dizin mevcut değilse dosyaları da içeremez. Hedef 229 dizine geçemiyorsak bu, dizin mevcut olmadığından olabilir.</p> 230 </li> 231 232 <li> 233 <strong>Hedef dizin Apache için izin verilen yerlerden biri mi? 234 </strong> 235 236 <p class="indent">İstek sunucunun normal bir bölümü için yapılmış 237 olsa da istenen dizin acaba suEXEC’in belge kök dizini altında mı? 238 Yani, istenen dizin, suEXEC’in aidiyetinde çalıştığı kullanıcının 239 ev dizini altında bulunan, <code class="directive"><a href="/mod/mod_userdir.html#userdir">UserDir</a></code> ile belirtilen dizinin altında mı? (<a href="#install">suEXEC’in yapılandırma seçeneklerine</a> 240 bakınız).</p> 241 </li> 242 243 <li> 244 <strong>Hedef dizin başkaları tarafından yazılabilen bir dizin değil, 245 değil mi?</strong> 246 247 <p class="indent">Başkaları da yazabilsin diye bir dizin açmıyoruz; 248 dizin içeriğini sadece sahibi değiştirebilmelidir.</p> 249 </li> 250 251 <li> 252 <strong>Hedef CGI/SSI programı mevcut mu?</strong> 253 254 <p class="indent">Mevcut değilse çalıştırılamaz.</p> 255 </li> 256 257 <li> 258 <strong>Hedef CGI/SSI program dosyasına başkaları tarafından 259 yazılamıyor, değil mi?</strong> 260 261 <p class="indent">Hedef CGI/SSI programının dosyasına sahibinden 262 başka kimsenin bir şeyler yazmasını istemeyiz.</p> 263 </li> 264 265 <li> 266 <strong>Hedef CGI/SSI program setuid veya setgid <em>değil</em>, 267 değil mi?</strong> 268 269 <p class="indent">UID/GID‘i tekrar değiştirecek programlar 270 çalıştırmayı istemeyiz.</p> 271 </li> 272 273 <li> 274 <strong>Hedef kullanıcı/grup, programın kullanıcı/grubu ile aynı mı? 275 </strong> 276 277 <p class="indent">Hedef kullanıcı dosyanın sahibi mi?</p> 278 </li> 279 280 <li> 281 <strong>İşlemlerin güvenle yapılabilmesi için süreç ortamını 282 başarıyla temizleyebildik mi?</strong> 283 284 <p class="indent">suEXEC, sürecin çalışacağı ortama güvenli bir 285 program çalıştırma yolu sağlamaktan başka, yapılandırma sırasında 286 oluşturulan güvenli ortam değişkenleri listesinde isimleri bulunan 287 ortam değişkenlerinden başkasını aktarmayacaktır.</p> 288 </li> 289 290 <li> 291 <strong>Hedef CGI/SSI programı haline gelip çalışabildik mi?</strong> 292 293 <p class="indent">Burası suEXEC’in bitip CGI/SSI programının 294 başladığı yerdir.</p> 295 </li> 296 </ol> 297 298 <p>Bu süreç suEXEC güvenlik modelinin standart işlemlerini oluşturur. 299 Biraz zorlayıcı ve CGI/SSI tasarımına yeni kurallar ve sınırlamalar 300 getiriyor olsa da düşünülen güvenliği adım adım sağlayacak şekilde 301 tasarlanmıştır.</p> 302 303 <p>Düzgün bir suEXEC yapılandırmasının hangi güvenlik risklerinden 304 kurtulmayı sağladığı ve bu güvenlik modelinin sunucu yapılandırmasıyla 305 ilgili sorumluluklarınızı nasıl sınırlayabildiği hakkında daha 306 ayrıntılı bilgi edinmek için bu belgenin <a href="#jabberwock">"Uyarılar ve Örnekler"</a> bölümüne bakınız.</p> 307</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 308<div class="section"> 309<h2><a name="install" id="install">suEXEC’in Yapılandırılması ve Kurulumu</a></h2> 310 311 <p>Eğlence başlıyor.</p> 312 313 <p><strong>suEXEC yapılandırma seçenekleri</strong><br /> 314 </p> 315 316 <dl> 317 <dt><code>--enable-suexec</code></dt> 318 319 <dd>Bu seçenek, hiçbir zaman öntanımlı olarak kurulmayan ve 320 etkinleştirilmeyen suEXEC özelliğini etkin kılar. suEXEC özelliğini 321 kullanma isteğinizi Apache’nin kabul edebilmesi için 322 <code>--enable-suexec</code> seçeneğinin yanında en azından bir tane 323 de <code>--with-suexec-xxxxx</code> seçeneği belirtilmiş 324 olmalıdır.</dd> 325 326 <dt><code>--with-suexec-bin=<em>YOL</em></code></dt> 327 328 <dd>Güvenlik sebebiyle <code>suexec</code> çalıştırılabilirinin 329 bulunduğu yer sunucu koduna yazılır. Bu seçenekle öntanımlı yol 330 değiştirilmiş olur. Örnek:<br /> 331 <code>--with-suexec-bin=/usr/sbin/suexec</code></dd> 332 333 <dt><code>--with-suexec-caller=<em>KULLANICI</em></code></dt> 334 335 <dd>Normalde httpd’nin aidiyetinde çalıştığı <a href="mod/mpm_common.html#user">kullanıcı</a>dır. Bu, suEXEC 336 çalıştırıcısını çalıştırmasına izin verilen tek kullanıcıdır.</dd> 337 338 <dt><code>--with-suexec-userdir=<em>DİZİN</em></code></dt> 339 340 <dd><p>Kullanıcıların ev dizinleri altında suEXEC’in erişmesine izin 341 verilen alt dizinin yerini tanımlar. Bu dizin altında suEXEC 342 kullanıcısı tarafından çalıştırılacak tüm programlar "güvenilir" 343 olmalıdır. Eğer “basit” bir <code class="directive"><a href="/mod/mod_userdir.html#userdir">UserDir</a></code> yönergesi kullanıyorsanız ( içinde “*” 344 bulunmayan), bunun aynı dizin olması gerekir. Eğer burada belirtilen 345 dizin, <code>passwd</code> dosyasında kullanıcı için belirtilmiş 346 dizinin altında <code class="directive"><a href="/mod/mod_userdir.html#userdir">UserDir</a></code> 347 yönergesinde belirtilen dizin olmadığı takdirde suEXEC işini 348 gerektiği gibi yapmayacaktır. Öntanımlı değer 349 <code>public_html</code>’dir.</p> 350 351 <p>Eğer, sanal konaklarınızın herbiri farklı <code class="directive"><a href="/mod/mod_userdir.html#userdir">UserDir</a></code> yönergeleri içeriyorsa 352 burada belirtilecek dizinin üst dizininin hepsinde aynı olması 353 gerekir. <strong>Aksi takdirde, "~<em><code>kullanıcı</code></em>" 354 istekleri düzgün çalışmayacaktır.</strong></p></dd> 355 356 <dt><code>--with-suexec-docroot=<em>DİZİN</em></code></dt> 357 358 <dd>httpd için belge kök dizinini belirler. Bu, (<code class="directive"><a href="/mod/mod_userdir.html#userdir">UserDir</a></code>’lardan başka) suEXEC için 359 kullanılacak tek hiyerarşi olacaktır. Öntanımlı dizin sonuna 360 "<code>/htdocs</code>" eklenmiş <code>--datadir</code> dizinidir. 361 Yani, seçeneği "<code>--datadir=/home/apache</code>" olarak 362 belirtmişseniz suEXEC çalıştırıcısı için belge kök dizini 363 "<code>/home/apache/htdocs</code>" olur.</dd> 364 365 <dt><code>--with-suexec-uidmin=<em>UID</em></code></dt> 366 367 <dd>suEXEC kullanıcısının kullanıcı kimliği olarak izin verilen en 368 düşük değeri belirler. Çoğu sistemde bu ya 500’dür ya da 100; 100 369 öntanımlıdır.</dd> 370 371 <dt><code>--with-suexec-gidmin=<em>GID</em></code></dt> 372 373 <dd>suEXEC kullanıcısının grup kimliği olarak izin verilen en düşük 374 değeri belirler. Çoğu sistemde bu 100 olup, seçeneğin de öntanımlı 375 değeridir.</dd> 376 377 <dt><code>--with-suexec-logfile=<em>DOSYA</em></code></dt> 378 379 <dd>suEXEC hareketlerinin ve hatalarının kaydedileceği günlük 380 dosyasının adını belirler (denetim ve hata ayıklama için 381 kullanışlıdır). Öntanımlı günlük dosyası ismi 382 "<code>suexec_log</code>" olup yeri (<code>--logfiledir</code> 383 seçeneği ile belirtilen) günlük dosyaları dizinidir.</dd> 384 385 <dt><code>--with-suexec-safepath=<em>YOL</em></code></dt> 386 387 <dd>CGI çalıştırılabilirlerine aktarılacak güvenilir <code>PATH</code> 388 ortam değişkeninin değerini tanımlar. 389 "<code>/usr/local/bin:/usr/bin:/bin</code>" öntanımlıdır.</dd> 390 </dl> 391 392 <h3>SuEXEC çalıştırıcısının derlenmesi ve kurulumu</h3> 393 394 395 <p>SuEXEC özelliğini <code>--enable-suexec</code> seçeneği ile 396 etkinleştirdiyseniz <code>make</code> komutunu verdiğinizde httpd 397 ile birlikte <code>suexec</code> çalıştırılabilir dosyası da 398 derlenecektir.</p> 399 400 <p>Tüm bileşenler derlendikten sonra <code>make install</code> komutunu 401 vererek kurulumu tamamlayabilirsiniz. <code>suexec</code> 402 çalıştırılabilir dosyası <code>--sbindir</code> seçeneği ile 403 tanımlanan dizine kurulacaktır; öntanımlı yeri 404 <code>/usr/local/apache2/bin/</code> dizinidir.</p> 405 406 <p>Kurulum adımında <strong><em>root yetkisine</em></strong> sahip 407 olmanız gerektiğini unutmayın. Çalıştırıcıya kullanıcı kimliğinin 408 atanabilmesi ve dosyanın sahibi olan kullanıcı kimliği ile 409 çalıştırılabilmesini mümkün kılan bitinin etkin kılınabilmesi için 410 kurulumun <code><em>root</em></code> tarafından yapılması 411 önemlidir.</p> 412 413 414 <h3>Paranoyak yetkilendirme</h3> 415 416 417 <p>SuEXEC çalıştırıcısı kendini çalıştıran kullanıcının 418 <code class="program"><a href="/programs/configure.html">configure</a></code> betiğine 419 <code>--with-suexec-caller</code> seçeneği ile belirtilen kullanıcı 420 olup olmadığına bakacaksa da, bu sınamanın da bir sistem veya 421 kütüphane çağrısı ile istismar edilmiş olma ihtimali gözardı 422 edilmemelidir. Bunun meydana gelmesini önlemek için ve genelde 423 yapıldığı gibi dosyanın izinlerini suEXEC çalıştırıcısı sadece 424 httpd'nin aidiyetinde çalıştığı grup tarafından çalıştırılacak 425 şekilde ayarlayınız.</p> 426 427 <p>Örneğin, sunucunuz şöyle yapılandırılmışsa:</p> 428 429 <pre class="prettyprint lang-config">User www 430Group webgroup</pre> 431 432 433 <p>Ve <code class="program"><a href="/programs/suexec.html">suexec</a></code> çalıştırılabilir de 434 <code>/usr/local/apache2/bin/</code> dizinine kurulmuşsa şu komutları 435 vermelisiniz:</p> 436 437 <div class="example"><p><code> 438 chgrp apache-grup /usr/local/apache2/bin/suexec<br /> 439 chmod 4750 /usr/local/apache2/bin/suexec<br /> 440 </code></p></div> 441 442 <p>Böylece suEXEC çalıştırıcısını httpd’yi çalıştıran grubun 443 üyelerinden başkasının çalıştıramayacağından emin olabilirsiniz.</p> 444 445</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 446<div class="section"> 447<h2><a name="enable" id="enable">suEXEC’in etkin kılınması ve iptal edilmesi</a></h2> 448 449 450 <p>httpd başlatıldığı sırada <code class="program"><a href="/programs/suexec.html">suexec</a></code> çalıştırıcısı için 451 <code>--sbindir</code> seçeneği ile tanımlanan dizine bakar (seçeneğin 452 öntanımlı değeri <code>/usr/local/apache/sbin/suexec</code>’tir). httpd 453 düzgün yapılandırılmış bir suEXEC çalıştırıcısı bulduğu takdirde hata 454 günlüğüne şöyle bir ileti yazacaktır:</p> 455 456<div class="example"><p><code> 457 [notice] suEXEC mechanism enabled (wrapper: <var>/dosya/yolu/suexec</var>) 458</code></p></div> 459 460 <p>Sunucu başlatıldığında bu ileti yazılmazsa sunucu ya çalıştırıcı 461 programı umduğu yerde bulamamıştır ya da dosyanın <em>setuid</em> biti 462 <em>root</em> tarafından etkin kılınmamıştır.</p> 463 464 <p>SuEXEC mekanizmasını etkin kılmak istediğiniz sunucu çalışmaktaysa 465 sunucuyu önce öldürmeli sonra yeniden başlatmalısınız. Basit bir 466 <code>HUP</code> veya <code>USR1</code> sinyali ile yeniden başlamasını 467 sağlamak yeterli olmayacaktır.</p> 468 469 <p>SuEXEC mekanizmasını iptal etmek için ise <code class="program"><a href="/programs/suexec.html">suexec</a></code> 470 dosyasını sildikten sonra httpd'yi öldürüp yeniden başlamalısınız.</p> 471</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 472<div class="section"> 473<h2><a name="usage" id="usage">SuEXEC’in kullanımı</a></h2> 474 475 <p>CGI programlarına yapılan isteklerin suEXEC çalıştırıcısı tarafından 476 yerine getirilebilmesi için sanal konağın bir <code class="directive"><a href="/mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code> yönergesi içermesi veya 477 isteğin <code class="module"><a href="/mod/mod_userdir.html">mod_userdir</a></code> tarafından işleme konulması 478 gerekir.</p> 479 480 <p><strong>Sanal Konaklar:</strong><br />SuEXEC çalıştırıcısını farklı 481 bir kullanıcı ile etkin kılmanın tek yolu <code class="directive"><a href="/mod/core.html#virtualhost">VirtualHost</a></code> bölümleri içinde <code class="directive"><a href="/mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code> yönergesini 482 kullanmaktır. Bu yönergede ana sunucuyu çalıştıran kullanıcıdan farklı 483 bir kullanıcı belirterek ilgili sanal konak üzerinden CGI kaynakları 484 için yapılan tüm isteklerin belirtilen <em>kullanıcı</em> ve 485 <em>grup</em> tarafından çalıştırılması sağlanır. Bu yönergeyi 486 içermeyen sanal konaklar için ana sunucunun kullanıcısı 487 öntanımlıdır.</p> 488 489 <p><strong>Kullanıcı dizinleri:</strong><br /> 490 <code class="module"><a href="/mod/mod_userdir.html">mod_userdir</a></code> tarafından işleme sokulan tüm istekler için 491 suEXEC çalıştırıcısı istek yapılan kullanıcı dizininin sahibinin 492 aidiyetinde çalıştırılacaktır. Bu özelliğin çalışması için tek 493 gereklilik, kullanıcının SuEXEC çalıştırıcısı için etkin kılınmış olması 494 ve çalıştırıcının yukarıdaki <a href="#model">güvenlik sınamalarından</a> 495 geçebilmesidir. Ayrıca, <code>--with-suexec-userdir</code> <a href="#install">derleme</a> seçeneğinin açıklamasına da bakınız.</p> 496</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 497<div class="section"> 498<h2><a name="debug" id="debug">SuEXEC ve hata ayıklama</a></h2> 499 500 <p>SuEXEC çalıştırıcısı yukarıda değinildiği gibi günlük bilgilerini 501 <code>--with-suexec-logfile</code> seçeneği ile belirtilen dosyaya 502 yazacaktır. Çalıştırıcıyı doğru yapılandırarak kurduğunuzdan emin olmak 503 istiyorsanız, yolunda gitmeyen şeyler var mı diye bu günlük dosyasına 504 bakmayı ihmal etmeyin.</p> 505 506</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 507<div class="section"> 508<h2><a name="jabberwock" id="jabberwock">Uyarılar ve Örnekler</a></h2> 509 510 511 <p><strong>UYARI!</strong> Bu bölüm henüz bitmedi. Bu bölümün son hali 512 için <a href="http://httpd.apache.org/docs/2.4/suexec.html">çevrimiçi 513 belgelere</a> bakınız.</p> 514 515 <p>SuEXEC çalıştırıcısından dolayı sunucu ayarlarına bazı sınırlamalar 516 getiren bir kaç önemli nokta mevcuttur. SuEXEC ile ilgili hata 517 bildiriminde bulunmadan önce bunlara bir göz atmalısınız.</p> 518 519 <ul> 520 <li><strong>suEXEC ile ilgili önemli noktalar</strong></li> 521 522 <li>Hiyerarşik sınırlamalar 523 524 <p class="indent">Güvenlik ve verimlilik adına, tüm suEXEC 525 isteklerinin sanal konaklar için üst düzey belge kökünün altındaki 526 dosyalarla, kullanıcı dizinleri için ise üst düzey bireysel belge 527 köklerinin altındaki dosyalarla sınırlı kalması gerekir. Örneğin, 528 dört sanal konağınız varsa ve suEXEC çalıştırıcısının 529 getirilerinden faydalanmak istiyorsanız, sanal konaklarınızın belge 530 kök dizinlerini ana sunucunun belge kök dizininin altında kalacak 531 şekilde yapılandırmanız gerekir (örnek yolda).</p> 532 </li> 533 534 <li>SuEXEC'in <code>PATH</code> ortam değişkeni 535 536 <p class="indent">Bunu değiştirmek tehlikeli olabilir. Bu değişkende 537 tanımladığınız her yolun <strong>güvenli</strong> bir dizini işaret 538 ettiğinden emin olmalısınız. Başkalarının oralarda bir truva atı 539 çalıştırmasını istemiyorsanız buna çok dikkat ediniz.</p> 540 </li> 541 542 <li>SuEXEC kodunda değişiklik 543 544 <p class="indent">Gerçekte ne yaptığınızı bilmiyorsanız bu, 545 <strong>büyük bir sorun</strong> olabilir. Böyle şeyler yapmaktan 546 mümkün olduğunca uzak durmalısınız.</p> 547 </li> 548 </ul> 549 550</div></div> 551<div class="bottomlang"> 552<p><span>Mevcut Diller: </span><a href="/en/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | 553<a href="/fr/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 554<a href="/ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 555<a href="/ko/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 556<a href="/tr/suexec.html" title="Türkçe"> tr </a></p> 557</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 558<script type="text/javascript"><!--//--><![CDATA[//><!-- 559var comments_shortname = 'httpd'; 560var comments_identifier = 'http://httpd.apache.org/docs/2.4/suexec.html'; 561(function(w, d) { 562 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 563 d.write('<div id="comments_thread"><\/div>'); 564 var s = d.createElement('script'); 565 s.type = 'text/javascript'; 566 s.async = true; 567 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 568 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 569 } 570 else { 571 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 572 } 573})(window, document); 574//--><!]]></script></div><div id="footer"> 575<p class="apache">Copyright 2014 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p> 576<p class="menu"><a href="/mod/">Modüller</a> | <a href="/mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="/glossary.html">Terimler</a> | <a href="/sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 577if (typeof(prettyPrint) !== 'undefined') { 578 prettyPrint(); 579} 580//--><!]]></script> 581</body></html>