1
0
mirror of https://github.com/apache/httpd.git synced 2025-12-24 15:01:03 +03:00

New Turkish translation

Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by:  Orhan Berent <berent belgeler.org>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@703325 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nilgun Belma Buguner
2008-10-10 05:53:32 +00:00
parent 99496bf501
commit 0960306eb5
6 changed files with 1248 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 636430 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="index.xml.meta">
<parentdocument href="../"/>
<title>Çeşitli Belgeler</title>
<summary>
<p>Aşağıda listelenen belgeler de Apache HTTP sunucusu geliştirme projesi
kapsamındadır.</p>
<note type="warning"><title>Uyarı</title>
<p>Aşağıdaki belgeler, Apache HTTP Sunucusunun 2.1 sürümünde yapılmış
değişikliklere göre tam olarak güncellenmemiştir. Hala güncel kalmış
bazı bilgiler olabilir, fakat siz yine de bu belgeleri kullanırken
dikkatli olun.</p>
</note>
<dl>
<dt><a href="perf-tuning.html">Başarım Arttırma İpuçları - Apacheye
İnce Ayar Çekilmesi</a></dt>
<dd>
<p>Yüksek başarım elde etmek için Apache yapılandırmasında (çalışma
anında ve derleme sırasında) yapılacaklar ile ilgili bazı bilgiler
yanında Apachede bazı şeylerin (bir şeyleri hızlandıran ve
yavaşlatan şeylerin) yapılma ve yapılmama sebepleri
ıklanmıştır.</p>
</dd>
<dt><a href="security_tips.html">Güvenlik İpuçları</a></dt>
<dd>
<p>Apache HTTP sitenizi güvenli kılmak için yapılacaklar ve
yapılmayacaklar.</p>
</dd>
<dt><a href="relevant_standards.html">İlgili Standartlar</a></dt>
<dd>
<p>Bu belge Apachenin uyacağı standartların bir çoğuna atıfta
bulunmak amacıyla hazırlanmıştır.</p>
</dd>
<dt><a href="password_encryptions.html">Parola Şifreleme Biçimleri</a>
</dt>
<dd>
<p>Belgede, kimlik doğrulama amacıyla Apache tarafından desteklenen
çeşitli şifreleme tekniklerinden bahsedilmiştir.</p>
</dd>
</dl>
</summary>
</manualpage>

View File

@@ -0,0 +1,73 @@
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 698483 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_suexec.xml.meta">
<name>mod_suexec</name>
<description>CGI betiklerinin belli bir kullanıcı ve grubun aidiyetinde
çalışmasını mümkün kılar.</description>
<status>Extension</status>
<sourcefile>mod_suexec.c</sourcefile>
<identifier>suexec_module</identifier>
<compatibility>Apache 2.0 ve sonrasında mevcuttur.</compatibility>
<summary>
<p>Bu modül <program>suexec</program> programı ile birlikte CGI
betiklerinin belli bir kullanıcı ve grubun aidiyetinde çalışmasını
mümkün kılar.</p>
</summary>
<seealso><a href="../suexec.html">SuEXEC Desteği</a></seealso>
<directivesynopsis>
<name>SuexecUserGroup</name>
<description>CGI betiklerini çalıştıracak kullanıcı ve grup belirtilir.
</description>
<syntax>SuexecUserGroup <em>Kullanıcı Grup</em></syntax>
<contextlist><context>server config</context>
<context>virtual host</context></contextlist>
<compatibility>Apache 2.0 ve sonrasında mevcuttur.</compatibility>
<usage>
<p><directive>SuexecUserGroup</directive> yönergesi CGI programlarını
çalıştıracak kullanıcı ve grubu belirtmeye yarar. CGI harici istekler
hala <directive module="mpm_common">User</directive> yönergesinde
belirtilen kullanıcı tarafından yerine getirilir. Bu yönerge, Apache
1.3 yapılandırmasında sanal konak bölümlerindeki <code>User</code> ve
<code>Group</code> yönergelerinin yerini almak üzere tasarlanmıştır.</p>
<example>
<title>Örnek</title>
SuexecUserGroup nobody nogroup
</example>
</usage>
</directivesynopsis>
</modulesynopsis>

View File

@@ -0,0 +1,173 @@
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 698483 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_userdir.xml.meta">
<name>mod_userdir</name>
<description>Kullanıcılara özel dizinler</description>
<status>Base</status>
<sourcefile>mod_userdir.c</sourcefile>
<identifier>userdir_module</identifier>
<summary>
<p>Bu modül kullanıcılara özel dizinlere
<code>http://mesela.dom/~kullanıcı/</code> sözdizimi kullanılarak
erişilebilmesini mümkün kılar.</p>
</summary>
<seealso>
<a href="../urlmapping.html">URLlerin Dosya Sistemi ile Eşleştirilmesi</a>
</seealso>
<seealso>
<a href="../howto/public_html.html">public_html eğitmeni</a>
</seealso>
<directivesynopsis>
<name>UserDir</name>
<description>Kullanıcıya özel dizinlerin yeri</description>
<syntax>UserDir <em>dizin</em> [<em>dizin</em>] ...</syntax>
<contextlist><context>server config</context> <context>virtual
host</context></contextlist>
<usage>
<p><directive>UserDir</directive> yönergesi, bir kullanıcıya ait bir
belge için bir istek yapıldığında, isteğin kullanıcının ev dizininde
bulunan belli bir dizinden karşılanmasını sağlar.
<code><em>dizin</em></code> olarak şunlar belirtilebilir:</p>
<ul>
<li>Dizinin ismi veya aşağıdakiler gibi bir kalıp.</li>
<li><code>disabled</code> anahtar sözcüğü. <code>enabled</code> anahtar
sözcüğü ile sonradan etkin kılınmadıkça <em>tüm</em> kullanıcı-dizin
dönüşümlerini iptal eder (aşağıya bakınız).</li>
<li><code>disabled</code> anahtar sözcüğünü takibeden boşluk ayraçlı
kullanıcı isimleri listesi. Bu listede yer alan kullanıcı isimlerine,
sonradan bir <code>enabled</code> listesinde görünse bile, dizin
dönüşümleri <em>asla</em> uygulanmaz.</li>
<li><code>enabled</code> anahtar sözcüğünü takibeden boşluk ayraçlı
kullanıcı isimleri listesi. Genel bir iptal sözkonusu olsa bile,
kullanıcı ismi bir <code>disabled</code> listesinde yer almadıkça, bu
listede yer alan dizinlere dönüşüm uygulanır.</li>
</ul>
<p><code>Userdir</code> yönergesinde ne <code>enabled</code> ne de
<code>disabled</code> varsa, argüman bir dosya ismi kalıbı olarak ele
alınır ve kullanıcı belge kök dizininin yolunu oluşturmakta kullanılır.
<code>http://mesela.dom/~ali/bir/iki.html</code> şöyle dönüştürülür:</p>
<table>
<tr><th>Kullanılan UserDir yönergesi&nbsp;&nbsp;&nbsp;&nbsp;</th>
<th>Elde edilen yol</th></tr>
<tr><td>UserDir public_html</td>
<td>~ali/public_html/bir/iki.html</td></tr>
<tr><td>UserDir /usr/siteler</td>
<td>/usr/siteler/ali/bir/iki.html</td></tr>
<tr><td>UserDir /home/*/htdocs</td>
<td>/home/ali/htdocs/bir/iki.html</td></tr>
</table>
<p>Aşağıdaki yönergelerle istemciye gönderilecek yönlendirmeler:</p>
<table>
<tr><th>Kullanılan UserDir yönergesi&nbsp;&nbsp;&nbsp;&nbsp;</th>
<th>Elde edilen yönlendirme</th></tr>
<tr><td>UserDir http://mesela.dom/users</td>
<td>http://mesela.dom/users/ali/bir/iki.html</td></tr>
<tr><td>UserDir http://mesela.dom/*/usr</td>
<td>http://mesela.dom/ali/usr/bir/iki.html</td></tr>
<tr><td>UserDir http://mesela.dom/~*/</td>
<td>http://mesela.dom/~ali/bir/iki.html</td></tr>
</table>
<note>
<strong>Bu yönergeyi kullanırken dikkatli olun; örneğin, <code>"UserDir
./"</code> şeklinde bir atama <code>"/~root"</code> isteklerini
<code>"/"</code> dizinine yönlendirir ki bu elbette istenmez. Bu
bakımdan yapılandırmanızda mutlaka bir "<code>UserDir disabled
root</code>" satırının yer almasını tavsiye ederiz. Daha fazla bilgi
için <directive module="core">Directory</directive> yönergesine ve <a
href="../misc/security_tips.html">Güvenlik İpuçları</a> sayfasına
bakınız.</strong>
</note>
<p>Diğer örnekler:</p>
<p>Bir kaç kullanıcı hariç kalan herkesin <code>UserDir</code>
dizinlerini iptal etmek için şunu yapabilirsiniz:</p>
<example>
UserDir disabled<br />
UserDir enabled birey1 birey2 birey3
</example>
<p>Bir kaç kullanıcı hariç kalan herkesin <code>UserDir</code>
dizinlerini etkin kılmak için şunu yapabilirsiniz:</p>
<example>
UserDir enabled<br />
UserDir disabled birey4 birey5 birey6
</example>
<p>Birden fazla dizin belirtmek de mümkündür:</p>
<example>
Userdir public_html /usr/siteler http://mesela.dom/
</example>
<p>Bu örneğe göre, <code>http://mesela.dom/~ali/bir/iki.html</code>
şeklinde bir istek alındığında sunucu önce
<code>http://mesela.dom/~ali/bir/iki.html</code> yönlendirmesini
deneyecektir. Onu bulamazsa isteği
<code>/usr/siteler/ali/bir/iki.html</code> dosyasını arayacak onu da
bulamazsa istemciyi <code>http://mesela.dom/ali/bir/iki.html</code>
adresine yönlendirecektir.</p>
<p>Argüman listesine bir yönlendirme ekleyecekseniz, bu, listenin son
elemanı olmalıdır. Apache yönlendirmenin başarılı sonuç verip
vermediğini bilemeyecektir. Bu bakımdan, listede bu yönlendirmeden
sonra bir yönlendirme daha bulunması daha iyi olacaktır.</p>
<p>Kullanıcı dizini dönüşümü Apache 2.1.4 sürümü ve sonrasında öntanımlı
olarak etkin değildir. Daha önceki sürümlerde bir <directive
module="mod_userdir">UserDir</directive> yönergesinin yokluğunda
<code>UserDir public_html</code> öntanımlıydı.</p>
</usage>
<seealso>
<a href="../howto/public_html.html">public_html eğitmeni</a>
</seealso>
</directivesynopsis>
</modulesynopsis>

View File

@@ -0,0 +1,178 @@
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 420990 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="prefork.xml.meta">
<name>prefork</name>
<description>Evresiz ön çatallamalı HTTP sunucusu oluşturur</description>
<status>MPM</status>
<sourcefile>prefork.c</sourcefile>
<identifier>mpm_prefork_module</identifier>
<summary>
<p>Bu çok süreçlilik modülü (MPM) Apache 1.3ün yaptığı gibi evresiz ve
çocuk süreçlerin önceden çatallandığı bir HTTP sunucusu oluşturur.
Evresiz kütüphanelerle uyumluluk için evrelemeden kaçınma ihtiyacında
olan siteler için uygundur. Ayrıca istekleri birbirlerinden yalıtmak
için en iyi MPMdir, dolayısıyla herhangi bir istekle ilgili bir sorun
diğerlerini etkilemez.</p>
<p>Bu MPM kendi kendine her duruma çok iyi uyum sağladığından
yapılandırma yönergeleri ile yapılandırılmaya nadiren ihtiyaç gösterir.
Yönergelerin en önemlisi <directive module="mpm_common"
>MaxClients</directive> olup, değeri aynı anda almayı umduğunuz istek
sayısını işleyebilecek kadar büyük, fiziksel belleğin tüm süreçlerin
ihtiyaçlarını karşılamasına yetecek kadar da küçük olması gerekir.</p>
</summary>
<seealso><a href="../bind.html">Apachenin kullandığı adres ve portların
ayarlanması</a></seealso>
<section id="how-it-works"><title>Nasıl çalışır?</title>
<p>Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri
devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache
daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda
sunucu sürecini <dfn>yedekte tutmaya</dfn> veya boşta bekletmeye
çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk
süreçlerin çatallanmasını beklemek gerekmez.</p>
<p>Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl
gerçekleştireceği <directive module="mpm_common"
>StartServers</directive>, <directive module="prefork"
>MinSpareServers</directive>, <directive module="prefork"
>MaxSpareServers</directive> ve <directive module="mpm_common"
>MaxClients</directive> yönergeleri ile düzenlenir. Apache
kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu
sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez.
Aynı anda 256dan fazla isteğe hizmet sunacak sitelerin <directive
module="mpm_common">MaxClients</directive> değerini arttırmaları
gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de
sunucunun belleği diske takaslamasını önlemek için bu değeri
azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha
fazla bilgi edinmek için <a href="../misc/perf-tuning.html">başarım
arttırma ipuçları</a> belgesine bakınız.</p>
<p>Unix altında 80. portu dinleyebilmek için ana sürecin
<code>root</code> tarafından çalıştırılmış olması gerekirse de çocuk
süreçler Apache tarafından daha az yetkili bir kullanıcının aidiyetinde
çalıştırılırlar. Apachenin çocuk süreçlerinin kullanıcı ve gruplarını
ayarlamak için <directive module="mpm_common">User</directive> ve
<directive module="mpm_common">Group</directive> yönergeleri
kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya yetkili
olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı
tutulmasına çalışılmalıdır.</p>
<p><directive module="mpm_common">MaxRequestsPerChild</directive>
yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı
ne kadar sıklıkla yapacağını denetler.</p>
</section>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>EnableExceptionHook</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>LockFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ServerLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartServers</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
</directivesynopsis>
<directivesynopsis>
<name>MaxSpareServers</name>
<description>Boştaki çocuk süreçlerin azami sayısı</description>
<syntax>MaxSpareServers <var>sayı</var></syntax>
<default>MaxSpareServers 10</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p><directive>MaxSpareServers</directive> yönergesi <em>boştaki</em>
çocuk sunucu süreçlerinin azami sayısını belirler. Boştaki süreç, o an
bir isteğe hizmet sunmayan süreçtir. Eğer
<directive>MaxSpareServers</directive> sayıda süreçten daha fazla boşta
süreç varsa ana süreç bu fazlalıkları öldürecektir.</p>
<p>Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli
olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü
bir fikirdir. Eğer bu değeri <directive module="prefork"
>MinSpareServers</directive> değerine eşit veya daha küçük bir değere
ayarlarsanız, Apache bu değeri kendiliğinden <directive
>MinSpareServers</directive><code> + 1</code> olarak
değiştirecektir.</p>
</usage>
<seealso><directive module="prefork">MinSpareServers</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>MinSpareServers</name>
<description>Boştaki çocuk süreçlerin asgari sayısı</description>
<syntax>MinSpareServers <var>sayı</var></syntax>
<default>MinSpareServers 5</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p><directive>MinSpareServers</directive> yönergesi <em>boştaki</em>
çocuk sunucu süreçlerinin asgari sayısını belirler. Boştaki süreç, o an
bir isteğe hizmet sunmayan süreçtir. Eğer
<directive>MinSpareServers</directive> sayıda süreçten daha az boşta
süreç varsa ana süreç sayıyı tamamlamak için saniyede en fazla 1 süreç
olmak üzere yeni çocuk süreçler oluşturacaktır.</p>
<p>Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli
olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü
bir fikirdir.</p>
</usage>
<seealso><directive module="prefork">MaxSpareServers</directive></seealso>
<seealso><directive module="mpm_common">StartServers</directive></seealso>
</directivesynopsis>
</modulesynopsis>

View File

@@ -0,0 +1,186 @@
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 431460 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="worker.xml.meta">
<name>worker</name>
<description>Çok evreli ve çok süreçli melez bir HTTP sunucusu oluşturan çok
süreçlilik modülü.</description>
<status>MPM</status>
<sourcefile>worker.c</sourcefile>
<identifier>mpm_worker_module</identifier>
<summary>
<p>Bu çok süreçlilik modülü (MPM) hem çok süreçli hem de çok evreli
olabilen melez bir sunucu oluşturur. İstekleri sunmak için evreleri
kullanması sebebiyle çok süreçli bir sunucudan daha az sistem kaynağı
harcayarak daha çok isteğe hizmet sunabilir. Bununla birlikte, herbiri
çok sayıda evreye sahip çok sayıda süreci canlı tutarak bir çok süreçli
sunucu kadar kararlı olur.</p>
<p>Bu MPMi denetim altında tutmakta kullanılan en önemli yönergeler, her
çocuk süreç için konuşlandırılacak evre sayısını belirleyen <directive
module="mpm_common">ThreadsPerChild</directive> yönergesi ile devreye
sokulacak toplam evre sayısının azamisini belirleyen <directive
module="mpm_common">MaxClients</directive> yönergesidir.</p>
</summary>
<seealso><a href="../bind.html">Apachenin kullandığı adres ve portların
ayarlanması</a></seealso>
<section id="how-it-works"><title>Nasıl çalışır?</title>
<p>Çocuk süreçleri devreye almaktan tek bir süreç (ana süreç) sorumludur.
Her çocuk süreç <directive module="mpm_common"
>ThreadsPerChild</directive> yönergesinde belirtilen sayıda evre
konuşlandırır. Bunlardan ayrı olarak, bir dinleyici evre bağlantıları
dinleyip gelenleri işlenmek üzere bu sunucu evrelerinden birine
aktarır.</p>
<p>Apache daima, gelen isteklere hizmet sunmaya hazır <dfn>yedek</dfn>
veya boştaki sunucu evrelerinden oluşan bir havuzu canlı tutmaya
çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk
süreçlerin çatallanmasını, dolayısıyla yeni evrelerin
konuşlandırılmasını beklemek gerekmez. Başlangıçta çalıştırılacak çocuk
süreçlerin sayısı <directive
module="mpm_common">StartServers</directive> yönergesinde belirtilir.
Apache, çalışma süresi boyunca <directive module="mpm_common"
>MinSpareThreads</directive> ve <directive module="mpm_common"
>MaxSpareThreads</directive> yönergeleri ile belirtilen sınırlar
dahilinde kalmak üzere gerektiğinde süreçleri öldürerek gerektiğinde
yenilerini devreye alarak tüm süreçlerdeki toplam evre sayısını sabit
tutmaya çalışır. Bu işlem kendiliğinden çok iyi yürüdüğünden bu
yönergelere öntanımlı değerlerinden farklı değerlerin atanması nadiren
gerekli olur. Aynı anda hizmet sunulabilecek istemcilerin sayısı (yani,
tüm süreçlerin toplam evre sayısı) <directive module="mpm_common"
>MaxClients</directive> yönergesi ile belirlenir. Etkin çocuk
süreçlerin sayısı ise <directive module="mpm_common"
>MaxClients</directive> yönergesindeki değerin <directive
module="mpm_common" >ThreadsPerChild</directive> yönergesindeki değere
bölünmesi ile elde edilir.</p>
<p>Bu iki yönerge aynı anda etkin olabilecek çocuk süreçlerin ve her
çocuk süreçteki sunucu evreleri sayısının üst sınırını belirler ve bu
sınır sadece ana sunucu tamamen durdurulup yeniden başlatılarak
değiştirilebilir. <directive module="mpm_common"
>ServerLimit</directive> yönergesinin değeri etkin çocuk süreç
sayısının üst sınırı olup <directive module="mpm_common"
>MaxClients</directive> yönergesindeki değerin <directive
module="mpm_common" >ThreadsPerChild</directive> yönergesindeki değere
bölünmesi ile elde değere eşit veya bundan küçük olması gerekir.
<directive module="mpm_common">ThreadLimit</directive> yönergesinin
değeri ise sunucu evreleri sayısının üst sınırını belirler ve <directive
module="mpm_common">ThreadsPerChild</directive> yönergesindeki değerden
büyük veya ona eşit olması gerekir.</p>
<p>Sonlandırma sırasında etkin çocuk süreçlere ek olarak mevcut istemci
bağlantılarını işleme sokmaya çalışan tek bir sunucu evresinden başka
fazladan bir çocuk süreç etkin kalabileceği gibi sonlandırılacak süreç
sayısının en fazla <directive module="mpm_common"
>MaxClients</directive> olması gerekirse de gerçekte sayı bundan küçük
olabilir. Şöyle bir işlemle tek bir çocuk sürecin sonlandırılması
iptal edilerek bu gibi durumlara karşı önlem alınabilir:</p>
<ul>
<li><directive module="mpm_common"> MaxRequestsPerChild</directive>
yönergesinin değeri sıfır yapılır.</li>
<li><directive module="mpm_common">MaxSpareThreads</directive> ve
<directive module="mpm_common">MaxClients</directive> yönergelerinin
değerleri birbirine eşitlenir.</li>
</ul>
<p><module>worker</module> modülünün öntanımlı süreç-evre yapılandırması
genelde şöyledir:</p>
<example>
ServerLimit 16<br />
StartServers 2<br />
MaxClients 150<br />
MinSpareThreads 25<br />
MaxSpareThreads 75<br />
ThreadsPerChild 25
</example>
<p>Unix altında 80. portu dinleyebilmek için ana sürecin root tarafından
çalıştırılmış olması gerekirse de çocuk süreçler ve evreler Apache
tarafından daha az yetkili bir kullanıcının aidiyetinde
çalıştırılırlar. Apachenin çocuk süreçlerinin kullanıcı ve gruplarını
ayarlamak için User ve Group yönergeleri kullanılır. Çocuk süreçlerin
sunacakları içeriği okumaya yetkili olmaları gerekir, fakat bu yetkinin
mümkün olduğunca kısıtlı tutulmasına çalışılmalıdır. Bundan başka,
<program>suexec</program> kullanılmadığı takdirde, bu yönergeler CGI
betikleri tarafından miras alınacak yetkili kullanıcı ve grubu da
ayarlarlar.</p>
<p><directive module="mpm_common">MaxRequestsPerChild</directive>
yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı
ne kadar sıklıkla yapacağını denetler.</p>
</section>
<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>EnableExceptionHook</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>LockFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ServerLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartServers</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadStackSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
</modulesynopsis>

557
docs/manual/suexec.xml.tr Normal file
View File

@@ -0,0 +1,557 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
<!-- English Revision: 698389 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="suexec.xml.meta">
<title>SuEXEC Desteği</title>
<summary>
<p><strong>SuEXEC</strong> özelliği, Apache kullanıcılarına
<strong>CGI</strong> ve <strong>SSI</strong> programlarını sunucunun
aidiyetinde çalıştığı kullanıcıdan farklı bir kullanıcının aidiyetinde
çalıştırma olanağı verir. Normalde, <strong>CGI</strong> ve
<strong>SSI</strong> programlarını çalıştıranla sunucuyu çalıştıran
aynı kullanıcıdır.</p>
<p>Gerektiği gibi kullanıldığında bu özellik, kullanıcılara
<strong>CGI</strong> ve <strong>SSI</strong> programlarını çalıştırma
ve geliştirmeye izin vermekle ortaya çıkan güvenlik risklerini azaltır.
Bununla birlikte, <strong>suEXEC</strong> gerektiği gibi
yapılandırılmadığı takdirde bazı sorunlara yol açabilir ve bilgisayar
güvenliğinizde yeni delikler ortaya çıkmasına sebep olabilir.
Güvenlikle ilgili mevcut sorunlarla başa çıkmada ve <em>setuid
root</em> programları yönetmekte bilgi ve deneyim sahibi değilseniz
<strong>suEXEC</strong> kullanmayı kesinlikle düşünmemenizi
öneririz.</p>
</summary>
<section id="before"><title>Başlamadan önce</title>
<p>Belgeye balıklama dalmadan önce, Apache Grubu ve bu belge ile ilgili
kabuller hakkında bilgi sahibi olmalısınız.</p>
<p>Öncelikle, üzerinde <strong>setuid</strong> va <strong>setgid</strong>
işlemlerinin yapılabildiği Unix türevi bir işletim sistemi
kullandığınızı varsayıyoruz. Tüm komut örnekleri buna dayanarak
verilmiştir. Bu desteğe sahip başka platformlar varsa onlardaki
yapılandırma burada anlattığımız yapılandırmadan farklı olabilir.</p>
<p>İkinci olarak, bilgisayarınızın güvenliği ve yönetimi ile ilgili bazı
temel kavramları bildiğinizi kabul ediyoruz. Buna
<strong>setuid/setgid</strong> işlemlerinin sisteminiz ve güvenlik
seviyesi üzerindeki etkilerini bilmek dahildir.</p>
<p>Üçüncü olarak, <strong>suEXEC</strong> kodunun
<strong>değiştirilmemiş</strong> bir sürümünü kullandığınızı
varsayıyoruz. Tüm suEXEC kodu, geliştiricilerin yanında sayısız beta
kullanıcısı tarafından dikkatle incelenmiş ve denenmiştir. Kodların hem
basit hem de sağlam bir şekilde güvenli olması için gerekli tüm
önlemler alınmıştır. Bu kodun değiştirilmesi beklenmedik sorunlara ve
yeni güvenlik risklerine yol açabilir. Özellikle güvenlikle ilgili
programlarda deneyimli değilseniz suEXEC kodunda kesinlikle bir
değişiklik yapmamalısınız. Değişiklik yaparsanız kodlarınızı gözden
geçirmek ve tartışmak üzere Apache Grubu ile paylaşmanızı öneririz.</p>
<p>Dördüncü ve son olarak, Apache Grubunun suEXECi öntanımlı Apache
kurulumunun bir parçası yapmama kararından bahsetmek gerekir. Bunun
sonucu olarak, suEXEC yapılandırması sistem yöneticisinin ayrıntılı bir
incelemesini gerektirir. Gerekli incelemeden sonra yönetici tarafından
suEXEC yapılandırma seçeneklerine karar verilip, normal yollardan
sisteme kurulumu yapılır. Bu seçeneklerin belirlenmesi, suEXEC
işlevselliğinin kullanımı sırasında sistem güvenliğini gerektiği gibi
sağlamak için yönetici tarafından dikkatle saptanmayı gerektirir. Bu
sürecin ayrıntılarının yöneticiye bırakılma sebebi, Apache Grubunun
suEXEC kurulumunu, suEXECi dikkatle kullanacak yeterliliğe sahip
olanlarla sınırlama beklentisidir.</p>
<p>Hala bizimle misiniz? Evet mi? Pekala, o halde devam!</p>
</section>
<section id="model"><title>SuEXEC Güvenlik Modeli</title>
<p>SuEXEC yapılandırması ve kurulumuna girişmeden önce biraz da
gerçekleşmesini istediğiniz güvenlik modelinin ayrıntıları üzerinde
duralım. Böylece, suEXECin içinde olup bitenleri ve sisteminizin
güvenliği için alınacak önlemleri daha iyi anlayabilirsiniz.</p>
<p><strong>suEXEC</strong> işlevselliği, Apache HTTP Sunucusu tarafından
gerektiği takdirde artalanda çalıştırılan bir setuid programa dayanır.
Bu program, bir CGI veya SSI betiğine bir HTTP isteği yapıldığı zaman,
bu betiği, yöneticinin ana sunucunun aidiyetinde çalıştığı kullanıcıdan
farklı olarak seçtiği bir kullanıcının aidiyetinde çalıştırmak için
çağrılır. Böyle bir istek geldiğinde, Apache artalandaki setuid
programına, HTTP isteği yapılan programın ismiyle beraber aidiyetinde
çalışacağı kullanıcı ve grup kimliklerini de aktarır.</p>
<p>Artalanda çalıştırılan setuid program başarıyı ve başarısızlığı
aşağıdaki süreci izleyerek saptar. Bunlardan herhangi biri başarısız
olursa program başarısızlık durumunu günlüğe kaydeder ve bir hata
vererek çıkar. Aksi takdirde çalışmaya devam eder.</p>
<ol>
<li>
<strong>Setuid programı çalıştıran kullanıcı sistemin geçerli
kullanıcılarından biri mi?</strong>
<p class="indent">Bu, setuid programı çalıştıran kullanıcının
sistemin gerçek bir kullanıcısı olduğunudan emin olunmasını sağlar.
</p>
</li>
<li>
<strong>Setuid program yeterli sayıda argümanla çağrılmış mı?
</strong>
<p class="indent">Apachenin artalanda çağırdığı setuid program
ancak yeterli sayıda argüman sağlandığı takdirde çalışacaktır.
Argümanların sayısını ve sırasını Apache HTTP sunucusu bilir. Eğer
setuid program yeterli sayıda argümanla çağrılmamışsa ya
kendisinde bir değişiklik yapılmıştır ya da kurulu Apache
çalıştırılabilirinin suEXEC ile ilgili kısmında yanlış giden bir
şeyler vardır.</p>
</li>
<li>
<strong>Bu geçerli kullanıcının bu setuid programı çalıştırma
yetkisi var mı?</strong>
<p class="indent">Sadece tek bir kullanıcı (Apachenin aidiyetinde
çalıştığı kullanıcı) bu programı çalıştırmaya yetkilidir.</p>
</li>
<li>
<strong>Hedef CGI veya SSI programı hiyerarşik olarak güvenliği
bozacak bir dosya yolu üzerinde mi?</strong>
<p class="indent">Hedef CGI veya SSI programının dosya yolu '/' veya
'..' ile başlıyor mu? Buna izin verilmez. Hedef CGI veya SSI
programı suEXECin belge kök dizininde yer almalıdır (aşağıda
<code>--with-suexec-docroot=<em>DİZİN</em></code> seçeneğine
bakınız).</p>
</li>
<li>
<strong>Hedef kullanıcı ismi geçerli mi?</strong>
<p class="indent">Hedef kullanıcı mevcut mu?</p>
</li>
<li>
<strong>Hedef grup ismi geçerli mi?</strong>
<p class="indent">Hedef grup mevcut mu?</p>
</li>
<li>
<strong>Hedef kullanıcı <code>root</code> değil, değil mi?</strong>
<p class="indent">Mevcut durumda, <code>root</code> kullanıcısının
CGI/SSI programlarını çalıştırmasına izin verilmemektedir.</p>
</li>
<li>
<strong>Hedef kullanıcı kimliği asgari kullanıcı numarasından
<em>BÜYÜK</em> mü?</strong>
<p class="indent">Asgari kullanıcı numarası yapılandırma sırasında
belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin
verilecek olası en düşük kullanıcı numarasını belirlemeniz mümkün
kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için
yararlıdır.</p>
</li>
<li>
<strong>Hedef grup <code>root</code> değil, değil mi?</strong>
<p class="indent">Mevcut durumda, <code>root</code> grubunun CGI/SSI
programlarını çalıştırmasına izin verilmemektedir.</p>
</li>
<li>
<strong>Hedef grup numarası asgari grup numarasından
<em>BÜYÜK</em> mü?</strong>
<p class="indent">Asgari grup numarası yapılandırma sırasında
belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin
verilecek olası en düşük grup numarasını belirlemeniz mümkün
kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için
yararlıdır.</p>
</li>
<li>
<strong>Apachenin artalanda çağırdığı setuid program hedef
kullanıcı ve grubun aidiyetine geçebildi mi?</strong>
<p class="indent">Bu noktadan itibaren program setuid ve setgid
çağrıları üzerinden hedef kullanıcı ve grubun aidiyetine geçer.
Erişim grubu listesi de ayrıca kullanıcının üyesi olduğu tüm
gruplara genişletilir.</p>
</li>
<li>
<strong>Hedef CGI/SSI programının bulunduğu dizine geçebildik mi?
</strong>
<p class="indent">Dizin mevcut değilse dosyaları da içeremez. Hedef
dizine geçemiyorsak bu, dizin mevcut olmadığından olabilir.</p>
</li>
<li>
<strong>Hedef dizin Apache için izin verilen yerlerden biri mi?
</strong>
<p class="indent">İstek sunucunun normal bir bölümü için yapılmış
olsa da istenen dizin acaba suEXECin belge kök dizini altında mı?
Yani, istenen dizin, suEXECin aidiyetinde çalıştığı kullanıcının
ev dizini altında bulunan, <directive module="mod_userdir"
>UserDir</directive> ile belirtilen dizinin altında mı? (<a
href="#install">suEXECin yapılandırma seçeneklerine</a>
bakınız).</p>
</li>
<li>
<strong>Hedef dizin başkaları tarafından yazılabilen bir dizin değil,
değil mi?</strong>
<p class="indent">Başkaları da yazabilsin diye bir dizin açmıyoruz;
dizin içeriğini sadece sahibi değiştirebilmelidir.</p>
</li>
<li>
<strong>Hedef CGI/SSI programı mevcut mu?</strong>
<p class="indent">Mevcut değilse çalıştırılamaz.</p>
</li>
<li>
<strong>Hedef CGI/SSI program dosyasına başkaları tarafından
yazılamıyor, değil mi?</strong>
<p class="indent">Hedef CGI/SSI programının dosyasına sahibinden
başka kimsenin bir şeyler yazmasını istemeyiz.</p>
</li>
<li>
<strong>Hedef CGI/SSI program setuid veya setgid <em>değil</em>,
değil mi?</strong>
<p class="indent">UID/GIDi tekrar değiştirecek programlar
çalıştırmayı istemeyiz.</p>
</li>
<li>
<strong>Hedef kullanıcı/grup, programın kullanıcı/grubu ile aynı mı?
</strong>
<p class="indent">Hedef kullanıcı dosyanın sahibi mi?</p>
</li>
<li>
<strong>İşlemlerin güvenle yapılabilmesi için süreç ortamını
başarıyla temizleyebildik mi?</strong>
<p class="indent">suEXEC, sürecin çalışacağı ortama güvenli bir
program çalıştırma yolu sağlamaktan başka, yapılandırma sırasında
oluşturulan güvenli ortam değişkenleri listesinde isimleri bulunan
ortam değişkenlerinden başkasını aktarmayacaktır.</p>
</li>
<li>
<strong>Hedef CGI/SSI programı haline gelip çalışabildik mi?</strong>
<p class="indent">Burası suEXECin bitip CGI/SSI programının
başladığı yerdir.</p>
</li>
</ol>
<p>Bu süreç suEXEC güvenlik modelinin standart işlemlerini oluşturur.
Biraz zorlayıcı ve CGI/SSI tasarımına yeni kurallar ve sınırlamalar
getiriyor olsa da düşünülen güvenliği adım adım sağlayacak şekilde
tasarlanmıştır.</p>
<p>Düzgün bir suEXEC yapılandırmasının hangi güvenlik risklerinden
kurtulmayı sağladığı ve bu güvenlik modelinin sunucu yapılandırmasıyla
ilgili sorumluluklarınızı nasıl sınırlayabildiği hakkında daha
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>
</section>
<section id="install"><title>suEXECin Yapılandırılması ve Kurulumu</title>
<p>Eğlence başlıyor.</p>
<p><strong>suEXEC yapılandırma seçenekleri</strong><br />
</p>
<dl>
<dt><code>--enable-suexec</code></dt>
<dd>Bu seçenek, hiçbir zaman öntanımlı olarak kurulmayan ve
etkinleştirilmeyen suEXEC özelliğini etkin kılar. suEXEC özelliğini
kullanma isteğinizi Apachenin kabul edebilmesi için
<code>--enable-suexec</code> seçeneğinin yanında en azından bir tane
de <code>--with-suexec-xxxxx</code> seçeneği belirtilmiş
olmalıdır.</dd>
<dt><code>--with-suexec-bin=<em>YOL</em></code></dt>
<dd>Güvenlik sebebiyle <code>suexec</code> çalıştırılabilirinin
bulunduğu yer sunucu koduna yazılır. Bu seçenekle öntanımlı yol
değiştirilmiş olur. Örnek:<br />
<code>--with-suexec-bin=/usr/sbin/suexec</code></dd>
<dt><code>--with-suexec-caller=<em>KULLANICI</em></code></dt>
<dd>Normalde Apachenin aidiyetinde çalıştığı <a
href="mod/mpm_common.html#user">kullanıcı</a>dır. Bu, bu programı
çalıştırmasına izin verilen tek kullanıcıdır.</dd>
<dt><code>--with-suexec-userdir=<em>DİZİN</em></code></dt>
<dd><p>Kullanıcıların ev dizinleri altında suEXECin erişmesine izin
verilen alt dizinin yerini tanımlar. Bu dizin altında suEXEC
kullanıcısı tarafından çalıştırılacak tüm programlar "güvenilir"
olmalıdır. Eğer “basit” bir <directive module="mod_userdir"
>UserDir</directive> yönergesi kullanıyorsanız ( içinde “*”
bulunmayan), bunun aynı dizin olması gerekir. Eğer burada belirtilen
dizin, <code>passwd</code> dosyasında kullanıcı için belirtilmiş
dizinin altında <directive module="mod_userdir">UserDir</directive>
yönergesinde belirtilen dizin olmadığı takdirde suEXEC işini
gerektiği gibi yapmayacaktır. Öntanımlı değer
<code>public_html</code>dir.</p>
<p>Eğer, sanal konaklarınızın herbiri farklı <directive
module="mod_userdir">UserDir</directive> yönergeleri içeriyorsa
burada belirtilecek dizinin üst dizininin hepsinde aynı olması
gerekir. <strong>Aksi takdirde, "~<em><code>kullanıcı</code></em>"
istekleri düzgün çalışmayacaktır.</strong></p></dd>
<dt><code>--with-suexec-docroot=<em>DİZİN</em></code></dt>
<dd>Apache için belge kök dizinini belirler. Bu, (<directive
module="mod_userdir" >UserDir</directive>lardan başka) suEXEC için
kullanılacak tek hiyerarşi olacaktır. Öntanımlı dizin sonuna
"<code>/htdocs</code>" eklenmiş <code>--datadir</code> dizinidir.
Yani, seçeneği "<code>--datadir=/home/apache</code>" olarak
belirtmişseniz suEXEC çalıştırıcısı için belge kök dizini
"<code>/home/apache/htdocs</code>" olur.</dd>
<dt><code>--with-suexec-uidmin=<em>UID</em></code></dt>
<dd>suEXEC kullanıcısının kullanıcı kimliği olarak izin verilen en
düşük değeri belirler. Çoğu sistemde bu ya 500dür ya da 100; 100
öntanımlıdır.</dd>
<dt><code>--with-suexec-gidmin=<em>GID</em></code></dt>
<dd>suEXEC kullanıcısının grup kimliği olarak izin verilen en düşük
değeri belirler. Çoğu sistemde bu 100 olup, seçeneğin de öntanımlı
değeridir.</dd>
<dt><code>--with-suexec-logfile=<em>DOSYA</em></code></dt>
<dd>suEXEC hareketlerinin ve hatalarının kaydedileceği günlük
dosyasının adını belirler (denetim ve hata ayıklama için
kullanışlıdır). Öntanımlı günlük dosyası ismi
"<code>suexec_log</code>" olup yeri (<code>--logfiledir</code>
seçeneği ile belirtilen) günlük dosyaları dizinidir.</dd>
<dt><code>--with-suexec-safepath=<em>YOL</em></code></dt>
<dd>CGI çalıştırılabilirlerine aktarılacak güvenilir <code>PATH</code>
ortam değişkeninin değerini tanımlar.
"<code>/usr/local/bin:/usr/bin:/bin</code>" öntanımlıdır.</dd>
</dl>
<section>
<title>SuEXEC çalıştırıcısının derlenmesi ve kurulumu</title>
<p>SuEXEC özelliğini <code>--enable-suexec</code> seçeneği ile
etkinleştirdiyseniz <code>make</code> komutunu verdiğinizde Apache
ile birlikte <code>suexec</code> çalıştırılabilir dosyası da
derlenecektir.</p>
<p>Tüm bileşenler derlendikten sonra <code>make install</code> komutunu
vererek kurulumu tamamlayabilirsiniz. <code>suexec</code>
çalıştırılabilir dosyası <code>--sbindir</code> seçeneği ile
tanımlanan dizine kurulacaktır; öntanımlı yeri
<code>/usr/local/apache2/bin/</code> dizinidir.</p>
<p>Kurulum adımında <strong><em>root yetkisine</em></strong> sahip
olmanız gerektiğini unutmayın. Çalıştırıcıya kullanıcı kimliğinin
atanabilmesi ve dosyanın sahibi olan kullanıcı kimliği ile
çalıştırılabilmesini mümkün kılan bitinin etkin kılınabilmesi için
kurulumun <code><em>root</em></code> tarafından yapılması
önemlidir.</p>
</section>
<section>
<title>Paranoyak yetkilendirme</title>
<p>SuEXEC çalıştırıcısı kendini çalıştıran kullanıcının
<program>configure</program> betiğine
<code>--with-suexec-caller</code> seçeneği ile belirtilen kullanıcı
olup olmadığına bakacaksa da, bu sınamanın da bir sistem veya
kütüphane çağrısı ile istismar edilmiş olma ihtimali gözardı
edilmemelidir. Bunun meydana gelmesini önlemek için ve genelde
yapıldığı gibi dosyanın izinlerini suEXEC çalıştırıcısı sadece Apache
sunucusunun aidiyetinde çalıştığı kullanıcı tarafından çalıştırılacak
şekilde ayarlayınız.</p>
<p>Örneğin, sunucunuz şöyle yapılandırılmışsa:</p>
<example>
User apache<br />
Group apache-grup<br />
</example>
<p>Ve <program>suexec</program> çalıştırılabilir de
<code>/usr/local/apache2/bin/</code> dizinine kurulmuşsa şu komutları
vermelisiniz:</p>
<example>
chgrp apache-grup /usr/local/apache2/bin/suexec<br />
chmod 4750 /usr/local/apache2/bin/suexec<br />
</example>
<p>Böylece suEXEC çalıştırıcısını Apacheyi çalıştıran grubun
üyelerinden başkasının çalıştıramayacağından emin olabilirsiniz.</p>
</section>
</section>
<section id="enable">
<title>suEXECin etkin kılınması ve iptal edilmesi</title>
<p>Apache başlatıldığı sırada <program>suexec</program> çalıştırıcısı
için <code>--sbindir</code> seçeneği ile tanımlanan dizine bakar
(seçeneğin öntanımlı değeri
<code>/usr/local/apache/sbin/suexec</code>tir). Apache düzgün
yapılandırılmış bir suEXEC çalıştırıcısı bulduğu takdirde hata
günlüğüne şöyle bir ileti yazacaktır:</p>
<example>
[notice] suEXEC mechanism enabled (wrapper: <var>/dosya/yolu/suexec</var>)
</example>
<p>Sunucu başlatıldığında bu ileti yazılmazsa sunucu ya çalıştırıcı
programı umduğu yerde bulamamıştır ya da dosyanın <em>setuid</em> biti
<em>root</em> tarafından etkin kılınmamıştır.</p>
<p>SuEXEC mekanizmasını etkin kılmak istediğiniz sunucu çalışmaktaysa
sunucuyu önce öldürmeli sonra yeniden başlatmalısınız. Basit bir
<code>HUP</code> veya <code>USR1</code> sinyali ile yeniden başlamasını
sağlamak yeterli olmayacaktır.</p>
<p>SuEXEC mekanizmasını iptal etmek için ise <program>suexec</program>
dosyasını sildikten sonra Apache sunucusunu öldürüp yeniden
başlamalısınız.</p>
</section>
<section id="usage"><title>SuEXECin kullanımı</title>
<p>CGI programlarına yapılan isteklerin suEXEC çalıştırıcısı tarafından
yerine getirilebilmesi için sanal konağın bir <directive
module="mod_suexec">SuexecUserGroup</directive> yönergesi içermesi veya
isteğin <module>mod_userdir</module> tarafından işleme konulması
gerekir.</p>
<p><strong>Sanal Konaklar:</strong><br />SuEXEC çalıştırıcısını farklı
bir kullanıcı ile etkin kılmanın tek yolu <directive
module="core">VirtualHost</directive> bölümleri içinde <directive
module="mod_suexec">SuexecUserGroup</directive> yönergesini
kullanmaktır. Bu yönergede ana sunucuyu çalıştıran kullanıcıdan farklı
bir kullanıcı belirterek ilgili sanal konak üzerinden CGI kaynakları
için yapılan tüm isteklerin belirtilen <em>kullanıcı</em> ve
<em>grup</em> tarafından çalıştırılması sağlanır. Bu yönergeyi
içermeyen sanal konaklar için ana sunucunun kullanıcısı
öntanımlıdır.</p>
<p><strong>Kullanıcı dizinleri:</strong><br />
<module>mod_userdir</module> tarafından işleme sokulan tüm istekler için
suEXEC çalıştırıcısı istek yapılan kullanıcı dizininin sahibinin
aidiyetinde çalıştırılacaktır. Bu özelliğin çalışması için tek
gereklilik, kullanıcının SuEXEC çalıştırıcısı için etkin kılınmış olması
ve çalıştırıcının yukarıdaki <a href="#model">güvenlik sınamalarından</a>
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>
</section>
<section id="debug"><title>SuEXEC ve hata ayıklama</title>
<p>SuEXEC çalıştırıcısı yukarıda değinildiği gibi günlük bilgilerini
<code>--with-suexec-logfile</code> seçeneği ile belirtilen dosyaya
yazacaktır. Çalıştırıcıyı doğru yapılandırarak kurduğunuzdan emin olmak
istiyorsanız, yolunda gitmeyen şeyler var mı diye bu günlük dosyasına
bakmayı ihmal etmeyin.</p>
</section>
<section id="jabberwock">
<title>Uyarılar ve Örnekler</title>
<p><strong>UYARI!</strong> Bu bölüm henüz bitmedi. Bu bölümün son hali
için <a
href="http://httpd.apache.org/docs/&httpd.docs;/suexec.html">çevrimiçi
belgelere</a> bakınız.</p>
<p>SuEXEC çalıştırıcısından dolayı sunucu ayarlarına bazı sınırlamalar
getiren bir kaç önemli nokta mevcuttur. SuEXEC ile ilgili hata
bildiriminde bulunmadan önce bunlara bir göz atmalısınız.</p>
<ul>
<li><strong>suEXEC ile ilgili önemli noktalar</strong></li>
<li>Hiyerarşik sınırlamalar
<p class="indent">Güvenlik ve verimlilik adına, tüm suEXEC
isteklerinin sanal konaklar için üst düzey belge kökünün altındaki
dosyalarla, kullanıcı dizinleri için ise üst düzey bireysel belge
köklerinin altındaki dosyalarla sınırlı kalması gerekir. Örneğin,
dört sanal konağınız varsa ve suEXEC çalıştırıcısının
getirilerinden faydalanmak istiyorsanız, sanal konaklarınızın belge
kök dizinlerini ana sunucunun belge kök dizininin altında kalacak
şekilde yapılandırmanız gerekir (örnek yolda).</p>
</li>
<li>SuEXEC'in <code>PATH</code> ortam değişkeni
<p class="indent">Bunu değiştirmek tehlikeli olabilir. Bu değişkende
tanımladığınız her yolun <strong>güvenli</strong> bir dizini işaret
ettiğinden emin olmalısınız. Başkalarının oralarda bir truva atı
çalıştırmasını istemiyorsanız buna çok dikkat ediniz.</p>
</li>
<li>SuEXEC kodunda değişiklik
<p class="indent">Gerçekte ne yaptığınızı bilmiyorsanız bu,
<strong>büyük bir sorun</strong> olabilir. Böyle şeyler yapmaktan
mümkün olduğunca uzak durmalısınız.</p>
</li>
</ul>
</section>
</manualpage>