Kök Dosya Sistemi

Amaç

Kök dosya sisteminin içeriği sistemin ön yüklemesi (boot), geri yüklemesi, kurtarması ve/veya tamiri için elverişli olmalıdır.

  • Bir sistemi önyüklemek için kök bölümde diğer blümleri bağlamak için yeterli araçlar olmalıdır. Bunlara araçlar, yapılandırmalar, ön yükleyici bilgileri ve diğer önemli açılış verileri dahildir. /usr, /opt, ve /var dizinleri diğer disk bölümlerinde veya dosya sistemlerinde saklanabilecek şekilde tasarlanmışlardır.
  • Bir sistemin kurtarılması ve onarılmasını sağlayabilmek için deneyimli bir sistem bakımcısı tarafından ihtiyaç duyulan sorunun teşhisi ve zarar gören sistemin yeniden inşası için araçlar kök dizinde bulunmalıdır.
  • Sistem yedeklerinden (disket, teyp sürücü vb.) bir sistemi geri getirmek için gerekli olan araçlar kök dosya sisteminde bulunmalıdır.
Mantıksal Temel

Kök dizinde bir çok şeyin bulunması düşüncelesini dengelemek için birincil iş kök dosya sistemini olabildiğince küçük tutmaktır. Bir çok sebepten kök dosya sisteminin küçük olması istenir:

  • Kök dosya sistemi bazen küçük bir ortamdan bağlanır.
  • Kök dosya sistemi bir çok sistem-spesifik yapılandırma dosyaları içerir. Muhtemel örnekler arasında sisteme özel çekirdek, özel bir sunucu adı vb. sayılabilir. Bunun anlamı kök dosya sistemi ağ ortamlarında paylaşılabilir olmamalıdır. Ağa bağlı sunucularda küçük tutulması paylaşılamaz dosyaların bulunduğu alanı sınırlandırmayı sağlar. Ayrıca iş istasyonlarının daha küçük sabit disk ile kullanılabilmesine olanak verir.
  • Büyük bir disk bölümü üzerinde bir kök dosya sistemine sahip olabilseniz de, ve bunu istediğiniz içeriklerle doldurabilseniz de, daha küçük disk bölümüne sahip kişiler de olacaktır. Daha fazla kurulu dosyalarınız olduğunda, küçük kök dosya sistemi kullanan sistemlerle uyumsuzluklarla karşılaşacaksınız. Bir geliştirici iseniz çok sayıda kullanıcı için varsayımınızı bir probleme dönüştüreceksiniz.
  • Kök dosya sisteminde verinin bozulması ile ilgili disk hataları diğer dosya sistemlerde olanlardan daha büyük bir problemdir. Küçük bir kök dosya sistemi sistem çökmelerinde daha az bozulma eğiliminde olacaktır.

Uygulamalar kök dosya sisteminde asla özel dosya veya alt dizinleri oluşturmayacak veya bunlara ihtiyaç duymayacaktır.FHS sıradüzününde diğer konumlar herhangi bir paket için yeterli esneklikten daha fazlasını sunar.
Mantıksal Temel

Kök dosya sistemi altında yeni bir altdizin oluşturmanın engellenmesinin bir çok sebebi vardır:

  • Bu, performans veya güvenlik sebeplerinden dolayı sistem yöneticisinin küçük tutmak istediği kök disk bölümünden yer istemektir.
  • Bu, düzen ne olursa olsun, sistem yöneticisinin bağlanabilir birimler arasında standart dosya sıradüzenini dağıtık olarak tutmasını engeller.
Dağıtımlar kök dosya sisteminde uygulamanın taşınabilirliği konusunu ve diğer sonuçları son derece dikkatli ele almadan yeni bir dizin oluşturmamalıdırlar.

Gereksinimler

Aşağıdaki dizinler veya dizinlere sembolik linkler / içerisinde gereklidir.

DizinTanımlama
binÖnemli komut dosyaları
bootÖnyükleyicinin statik dosyaları
devAygıt dosyaları
etcSunucu-spesifik sistem yapılandırmaları
libÖnemli paylaşılan kütüphaneler ve çekirdek modülleri
mediaÇıkarılabilir ortamlar için bağlama noktası
mntGeçici olarak bağlanacak dosya sistemlerinin bağlama noktası
optEk uygulama yazılım paketleri
sbinÖnemli sistem ikilileri
srvSistem tarafından sağlanan servisler için veri
tmpGeçici dosyalar
usrİkincil sıradüzen
varDeğişken veri

Yukarıda listenen her bir dizin aşağıda ayrıntılı olarak tanımlanmıştır. /usr ve /var dizinleri karmaşıklıklarından dolayı bu belgede ayrı bölümler olarak ele alınmıştır.

Özel Seçenekler

Aşağıdaki diznler veya dizinlere sembolik linkler eğer ilgili alt sistem kurulmuş ise / dizini içerisinde bulunmalıdır:

DizinTanımlama
homeKullanıcı ev dizinleri (seçimlik)
lib<qual>Önemli paylaşılan kütüphaneler diğer biçimi (seçimlik)
rootroot kullanıcısı ev dizini (seçimlik)

/bin : Önemli kullanıcı komut ikilileri (tüm kullanıcıların kullanımı için)

Amaç

/bin hem sistem yöneticileri hem de kullanıcılar tarafından kullanılabilecek, fakat diğer dosya sistemlerinin bağlanmadığında (örn. tekil kullanıcı modu) gerekli komutları içerir. Ayrıca betikler tarafından dolaylı olara kullanılan komutları da içerebilir. [10]

Gereksinimler

/bin içerisinde alt dizin olmamalıdır.

Aşağıdaki komutlar veya komutlara sembolik linkler /bin içerisinde bulunmalıdır.

KomutTanımlama
catDosyaları standart çıktıya bitiştirme aracı
chgrpDosya grubu sahipliğini değiştirme aracı
chmodDosya erişim yetkilerini değiştirme aracı
chownDosya sahibi ve grubunu değiştirme aracı
cpDosya ve dizinleri kopyalama aracı
dateSistem tarihi ve saatini değiştirme aracı
ddBir dosyayı dönüştürme ve kopyalama aracı
dfDosya sistemi disk boşluğu kullanımını bildirme aracı
dmesgÇekirdek mesaj tamponunu yazdırma veya kontrol etme aracı
echoBir satır metni görüntüleme aracı
falseBaşarısız bir şekilde hiç bir şey yapmama aracı
hostnameSistem sunucu adını gösterme veya ayarlama aracı
killİşlemlere sinyal gönderme aracı
lnDosyalar arasında bağlantı kurma aracı
loginSistemde oturum başlatma aracı
lsDizin içeriğini gösterme aracı
mkdirDizin oluşturma aracı
mknodBlok veya karakter özel dosyalarını oluşturma aracı
moreMetni sayfa sayfa görüntüleme aracı
mountDosya sistemi bağlama aracı
mvDosyaları taşıma/yenden isimlendirme aracı
psİşlem durumunu görüntüleme aracı
pwdBulunulan çalışma dizini ismini yazdırma aracı
rmDosya veya dizin silme aracı
rmdirBoş dizinleri silme aracı
sed`sed' akış düzenleyicisi
shBourne komut kabuğu
sttyTerminal satır ayarlarını görüntüleme veya değiştirme aracı
suKullanıcı değiştirme aracı
syncDosya sistemi tampon belleğini alma (flush) aracı
trueBaşarılı bir şekilde hiçbir şey yapmama aracı
umountDosya sistemi ayırma aracı
unameSistem bilgisi yazdırma aracı

Eğer /bin/sh gerçek Bourne kabuğu değil ise sıkı veya sembolik olarak gerçek kabuk komutuna bağlanmalıdır.

[vetest komutları birlikte ya /bin içerisinde ya da /usr/bin içerisinde bulunmalıdır.

Mantıksal Temel

Örneğin bash sh veya bash olarak çağırıldığında farklı davranmaktadır. Sembolik link kullanmak ayrıca kullanıcının /bin/sh'ın gerçek Bourne kabuğu olmadığını kolayca görmesini sağlar.

[vetest komutlarının ikililer olarak dahil edilme gereksinimi (kabuk içerisinde dahili olarak gerçekleştirilseler bile) POSIX.2 standardıyla ortaktır.

Özel Seçenekler

Aşağıdaki programlar veya programlara sembolik linkler ilgili alt sistemler kurulmuş ise /bin içerisinde bulunmalıdır:

KomutTanımlama
cshC kabuğu (seçimlik)
ed`ed' düzenleyici (seçimlik)
tartar arşivleme aracı (seçimlik)
cpiocpio arşivleme aracı (seçimlik)
gzipGNU sıkıştırma aracı (seçimlik)
gunzipGNU açma aracı (seçimlik)
zcatGNU açma aracı (seçimlik)
netstatAğ istatistikleri aracı (seçimlik)
pingICMP ağ test aracı (seçimlik)

Eğer gunzip ve zcat programları mevcut ise bunlar gzip'e sıkı veya sembolik olarak bağlanmalıdır. /bin/csh /bin/tcsh'a veya /usr/bin/tcsh'a sembolik bağlı olabilir.

Mantıksal Temel

tar, gzip ve cpio komutları sistem restorasyınunu sağlamak için eklenmişlerdir ( / bozulmadığı sürece).

Diğer taraftan kök disk bölümünden hiç resterasyon beklenmiyorsa bu ikililer ihmal edilebilir (örn. bir ROM çip kökü NFS üzerinde /usr'ye bağlanabilir) Eğer sistem resterasyonunun ağ üzerinden yapılacağı planlanmışsa ftp veya tftp (ftp bağlantısı için gerekli olan her şey) kök dizininden erişilebilir olmalıdır.

/boot : Ön yükleyicinin statik dosyaları

Amaç

Bu dizin önyükleme işlemi için gereken her şeyi, önyükleme sırasında lazım olmayan yapılandırma dosyaları ve harita kurucu hariç, içerir. Böylece /boot çekirdeğin kullanıcı-modu programlarını çalıştırılmaya başlanmasından önce kullanılan verileri saklar. Bunlar esas önyükleme sektörleri ve sektör harita dosyalarını da içerebilir. [11]

Özel Seçenekler

İşletim sistemi çekirdeği ya / ya da /boot içerisinde bulunmalıdır [12]

/dev : Aygıt dosyaları

Amaç

/dev dizini özel dosyaların veya aygıt dosyalarının bulunduğu yerdir.

Özel Seçenekler

Eğer mümkünse /dev elle oluşturulmalı, /dev gerektiğinde aygıt dosyası oluşturabilen MAKEDEV isimli komutu içermelidir. Ayrıca yerel aygıtlar için MAKEDEV.local içermelidir.

Eğer gerekliyse MAKEDEV, sadece belirli uygulamaların kurdukları aygıtları değil, sistemde bulunabilen herhangi bir aygıtı oluşturmak için hükme sahip olmalıdır.

/etc : Host-specific system configuration

Amaç

/etc dizini yapılandırma dosyaları içerir. Bir "yapılandırma dosyası" bir programın işlemesinin kontrolünde kullanılan yerel bir dosyadır; statik olmalı ve çalıştırılabilir bir ikili olmamalıdır. [13]

Requirements

/etc içine hiç bir ikili yerleştirilmemelidir. [14]

Aşağıdaki dizinler veya dizinlere sembolik bağlar, ilgili atlsistem kurulmuş ise, / içerisinde bulunmalıdır: are required in /etc:

DizinTanımlama
optConfiguration for /opt
X11Configuration for the X Window system (seçimlik)
sgmlConfiguration for SGML (seçimlik)
xmlConfiguration for XML (seçimlik)

Özel Seçenekler

Aşağıdaki dizinler veya dizinlere sembolik bağlantılar eğer ilgili alt sistemler kurulmuş ise /etc içerisinde bulunmalıdır:

DizinTanımlama
opt/opt için yapılandırma

Aşağıdaki dosyalar veya dosyalara sembolik bağlar eğer ilgili alt sistemler kurulmuş ise /etc içerisinde bulunmalıdır: [15]

DosyaTanımlama
csh.loginC kabuğu oturumlarının sistem çapında başlatılma dosyaları (seçimlik)
exportsNFS dosya sistemi erişim kontrol listesi (seçimlik)
fstabDosya sistemleri hakkında statik bilgiler (seçimlik)
ftpusersFTP daemon kullanıcı erişim kontrol listesi (seçimlik)
gatewaysYönlendirilecek ağ geçidi listeleri dosyası (seçimlik)
gettydefsgetty tarafından kullanılan hız ve terminal (seçimlik)
groupKullanıcı grup dosyası (seçimlik)
host.confÇözümleyici yapılandırma dosyası (seçimlik)
hostsSunucu isimleri hakkında statik bilgi (seçimlik)
hosts.allowTCP paket sargıları için sunucu erişim dosyası (seçimlik)
hosts.denyTCP paket sargıları için sunucu erişim dosyası (seçimlik)
hosts.equivrlogin, rsh, rcp için güvenilir sunucular listesi (seçimlik)
hosts.lpdlpd için güvenilir sunucular listesi (seçimlik)
inetd.confinetd için yapılandırma dosyası (seçimlik)
inittabinit için yapılandırma dosyası (seçimlik)
issueÖn-oturum mesajı ve belirtim dosyası (seçimlik)
ld.so.confPaylaşılan kütüphanelerin aranacağı ek dizinler listesi (seçimlik)
motdGünün post-login mesajı dosyası (seçimlik)
mtabDosya sistemi hakkında dinamik bilgi (seçimlik)
mtools.confmtools için yapılandırma dosyası (seçimlik)
networksAğ isimleri hakkında statik bilgi (seçimlik)
passwdParola dosyası (seçimlik)
printcapyazıcı kabiliyetleri veritabanı (seçimlik)
profilesh kabuk oturumları için sistem çapında ilklendirme dosyası (seçimlik)
protocolsIP protokol listeleme (seçimlik)
resolv.confÇözümleyici yapılandırma dosyası (seçimlik)
rpcRPC protokol listeleme (seçimlik)
securettyroot oturumu için TTY erişim kontrolü (seçimlik)
servicesAğ servisleri için port isimleri (seçimlik)
shellsGeçerli oturum kabukları yolları (seçimlik)
syslog.confsyslogd için yapılandırma dosyası (seçimlik)

mtab /etc'nin statik doğasına tam olarak uymaz: geçmiş uygulamalardan dolayı bulunabilir [16]

/etc/opt : /opt için yapılandırma dosyaları

Amaç

Eklenti uygulama yazılımı paketleri için konağa özel yapılandırma dosyaları /etc/opt/<subdir> içine kurulmalıdır. Burada <subdir> saklanan paketin statik verilerinin /opt içindeki altağacının ismidir.

Gereksinimler

/etc/opt/<subdir> dizini iç düzeni için herhangi bir yapı oluşturulmamıştır.

Eğer bir yapılandırma dosyası, paketin veya sistemin doğru çalışması için farklı bir konumda bulunmalıysa, /etc/opt/<altdizin> dışında bir yere yerleştirilmiş olabilir.

Mantıksal Temel
/opt için olan Mantıksal Temele bakınız

/etc/X11 : X Window System için yapılandırma dosyası (seçimlik)

Amaç

/etc/X11 tüm X11 sunucu-spesifik yapılandırmaları için konumdur. Bu dizin eğer /usr salt okunur olarak bağlandıysa yerel kontrole izin vermek için gereklidir.

Özel Seçenekler

Aşağıdaki dosyalar veya dosyalara sembolik bağlar ilgili alt sistemler kurulmuş ise /etc/X11 içerisinde bulunmalıdır:

DosyaTanımlama
XconfigXFree86'nın eski sürümleri için yapılandırma dosyası (seçimlik)
XF86ConfigXFree86 sürüm 3 ve 4 için yapılandırma dosyası (seçimlik)
XmodmapGlobal X11 klavye değiştirme dosyası (seçimlik)

/etc/X11'in alt dizinleri xdm için olanları ve bunlara ihtiyaç duyan herhangi programlar (bazı pencere yöneticileri örneğin) için olanları içerebilir. [17] Pencere yöneticilerinin varsayılan olarak .*wmrc olan sadece bir yapılandırma dosyasının system.*wmrc olarak isimlendirilmesini (geniş kabul gören başka bir isim olmadığı sürece) ve altdizin kullanmamasını tavsiye ediyoruz. Herhangi bir pencere yöneticisi altdizini geçerli pencere yöneticisi ikilisi ile aynı isimlendirilmelidir.

/etc/sgml : SGML için yapılandırma dosyası (seçimlik)

Amaç

SGML sistemlerin yüksek-seviye parametrelerini tanımlayan yapılandırma dosyaları burada kuruludur. *.conf şeklindeki dosya isimleri genel yapılandırma dosyalarını ifade eder. *.cat şeklindeki dosya isimleri verilen DTD'yi kullanması gereken tüm diğer katolog referanslarını içeren DTD-spesifik merkezileştirilmiş katologlardır. Süper katolog dosyası catalog tüm merkezileştirilmiş katologların referanslarını katologlar.

/etc/xml : XML için yapılandırma dosyaları (seçimlik)

Amaç

XML sistemlerin yüksek-seviye parametrelerini tanımlayan yapılandırma dosyaları burada kuruludur. *.conf şeklindeki dosya isimleri genel yapılandırma dosyalarını ifade eder. Süper katolog dosyası catalog tüm merkezileştirilmiş katologların referanslarını katologlar.

/home :Kullanıcı ev dizinleri (seçimlik)

Amaç

/home oldukça yaygın bir standarttır, fakat açık bir biçimde siteye-özel dosya sistemidir. [18] Kurulum sunucudan sunucuya değişiklik gösterecektir. Bu yüzden bu konumda hiç bir program bulunmamalıdır. [19]

Gereksinimler

Uygulamalar için kullanıcıya özel yapılandırma dosyaları kullanıcı ev dizininde . ile başlayan dosyalarda tutulurlar ("noktalı dosya"). Eğer bir uygulamanın birden fazla bu tür dosya oluşturması gerekirse bunlar . ile başlayan bir altdizinde tutulmalıdır ("noktalı dizin"). Bu durumda yapılandırma dosyaları . ile başlamamalıdır. [20]

/lib : Önemli paylaşılan kütüphaneler ve çekirdek modülleri

Amaç

/lib dizini sistemin önyüklemesinde ve kök dosya sisteminde çalıştırılan komutlar için gerekli paylaşılan kütüphane kalıplarını içerir. örn. /bin ve /sbin'deki ikililer. [21]

Gereksinimler

En azından aşağıdaki dosya adı örüntülerinden biri gereklidir (dosya veya sembolik bağlantı olabilir):

DosyaTanımlama
libc.so.*Dinamik bağlı C kütüphaneleri (seçimlik)
ld*Çalışma anı bağlayıcı/yükleyici (seçimlik)

Eğer bir C önişlemcisi kurulu ise, eski sebeplerden dolayı, /lib/cpp bunu göstermelidir. [22]

Özel Gereksinimler

Aşağıdaki dizinler veya dizinlere sembolik bağlar, ilgili alt sistem kurulmuş ise, /lib dizininde bulunmalıdır:

DizinTanımlama
modulesYüklenebilir çekirdek modülleri (seçimlik)

/lib<qual> : Diğer biçim önemli paylaşılan kütüphaneler (seçimlik)

Amaç

Sistemlerdeki /lib dizinlerinin ayrı kütüphaneler gerektiren birden fazla ikili biçimini destekleyen bir veya daha fazla çeşidi olabilir. [23]

Gereksinimler

Eğer bu dizinlerden bir ya da daha fazla bulunuyorsa bunların gereksinimleri normal /lib diziniyle aynıdır. /lib<qual>/cpp gerekli değilse hariç. [24]

/media : Çıkarılabilir ortamlar için bağlama noktası

Amaç

Bu dizin disket sürücüler gibi, cdrom ve zip sürücüler gibi çıkarılabilir ortamlar için bağlama noktası olan altdizinleri içerir.

Mantıksal Temel

Tarihsel olarak çıkarılabilir ortamlar için /cdrom, /mnt, /mnt/cdrom gibi farklı konumlar kullanılmıştır. tüm çıkarılabilir ortamlar için bağlama noktalarını doğrudan kök dizini içerinde tutmak / içerinde fazladan dizin oluşturulmasıyla sonuçlanacaktır. Buna rağmen /mnt içinde altdizin kullanımı son zamanlarda yaygın hale gelmiştir ve bu eski bir alışkanlık olan /mnt'nin geçici ortamlar için doğrudan bağlama noktası olmasıyla çelişir.

Özel Seçenekler

Aşağıdaki dizinler veya dizinlere sembolik bağlar, ilgili atlsistem kurulmuş ise, /media içerisinde bulunmalıdır:

DizinTanımlama
floppyDisket sürücü (seçimlik)
cdromCD-ROM sürücü (seçimlik)
cdrecorderCD yazıcı (seçimlik)
zipZip sürücü (seçimlik)

Belirli tür bir ortam için birden fazla cihazın bulunduğu sistemlerde bağlama dizinleri isimlerinin sonuna '0'dan başlayan rakamlar eklenerek oluşturulur. Ancak mutlak isimleri de ayrıca bulunmalıdır. [25]

/mnt : Geçici olarak bağlaan cihazlar için bağlama noktası

Amaç

Bu dizin sistem yöneticisinin geçici olarak bir dosya sisteminin bağlamak istediğinde kullanması içindir. Bu dizinin içeriği yerel bir konudur ve çalışan herhangi bir programı etkilememlidir.

Bu dizin programların kurulması için kullanılmamalıdır: bunun yerine sistem tarafından kullanılmayan geçici bir dizin kullanılmalıdır.

/opt : Eklenti uygulama yazılım paketleri

Amaç

/opt eklenti uygulama yazılım paketleri için ayrılmıştır.

/opt içinde kurulu bir paket statik dosyalarını ayrı bir /opt/<paket> or /opt/<provider> dizinine yerleştirmelidir. Burada paket yazılım paketinin adını belirtir ve tedarikçi de yazılım tedarikçisinin LANANA kayıt ismini belirtir.

Gereksinimler

DizinTanımlama
<package>Statik paket nesneleri
<provider>LANANA kayıtlı tedarikçi ismi

/opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib, ve /opt/man dizinleri yerel sistem yöneticisinin kullanımı için ayrılmıştır. Paketler, bu ayrılmş dizinlerde sistem yöneticisi tarafından kullanılacak ön-uç dosyalar bulundurabilirler. Fakat bu ayrılmış dizinler olmadan da çalışabilmelidirler.

Kullanıcılar tarafından çağırılacak programlar /opt/<paket>/bin veya /opt/<provider> dizininde bulunmalıdır. Eğer paket UNIX kılavuz (man) dosyaları içeriyorlarsa bunlar /opt/<paket>/share/man veya /opt/<provider> dizinlerinde bulunmalıdırlar ve /usr/share/man diziniyle aynı sıradüzene sagip olmalıdırlar.

Değişken olan paket isimleri (normal işletimde değişen) /var/opt içerisinde kurulu olmalıdır. Daha fazla bilgi için /var/opt bölümüne bakınız.

Sunucu-özle yapılandırma dosyaları /etc/opt dizini altında bulunmalıdır. Daha fazla bilgi için /etc bölümüne bakınız.

Doğru çalışabilmesi için dosya sisteminin belirli yerlerinde olması gereken pakaetler dışında, /opt, /var/opt, ve /etc/opt sıradüzeni dışarısında başka bir paket bulunmamalıdır. Örneğin aygıt kilit dosyaları /var/lock altında ve aygıt dosyaları da /dev altında bulunmalıdır.

Dağıtımlar yazılımları /opt içerisine kurabilirler fakat yerel sistem yöneticisinin rızası olmadan sistem yöneticisinin kurduğu yazılımları silmemel veya değiştirmemelidirler.

Mantıksal Temel

/opt'nin eklenti yazılımlar için kullanımı UNIX camiasında yerleşmiş uygulamalardır. Sistem V Uygulama İkili Arayüzü [AT&T 1990], Sistem V Arayüz tanımlamasını temel almaktadır (Üçüncü Basım), ve burada tanımlanan /opt yapısına çok benzer bir yapısı sunar.

Ayrıca Intel İkili Uyumluluk Standardı v. 2 (iBCS2) da /opt için benzer bir yapı sunar.

Genellikle bir sistemdeki paketin desteklemesi gereken tüm veriler /opt/<paket> içinde bulunmalıdır. Bu dosyalara /etc/opt/<package> ve /var/opt/<package> dizinlerine kopyalanacak dosyalar dahil olduğu gibi /opt içinde bulunan ayrılmış dizinler de dahildir.

/opt kullanan dağıtımlardaki küçük sınırlandırmalar gereklidir çünkü dağıtımların kurduğu ve yerel olarak kurulan yazılımlar arasında çakışma, özellikle bazı yazılım ikililerinde sabit sistem yolu bulunması durumunda, muhtemeldir.

/opt/<tedarikçi> dizini altındaki dizinlerin yapısı yazılım paketleyicisine bırakılmıştır. Bu yüzden bu paketlerin /opt/<tedarikçi>/<paket> içerisine kurulmasını ve /opt/paket için de benzer bir yol izlenmesini öneriyoruz. Bu yapıya bağlı kalmamak için geçerli bir sebep /opt/<tedarikçi>/lib veya /opt/<tedarikçi>/bin içerisinde dosyaları olabilecek paketleri desteklemektir.

/root : root kullanıcısı için ev dizini (seçimlik)

Amaç

root kullanıcısının ev dizini geliştirici veya yerel özelliklerle belirlenebilir fakat burada bahsedilen tavsiye edilen varsayılan konumdur.[26]

/sbin : Sistem İkilileri

Amaç

Sistem yöneticisi için olan araçlar (ve sadece root'un kullanabileceği diğer komutlar) /sbin, /usr/sbin, ve /usr/local/sbin içerisinde bulunurlar. /sbin, /bin içindekilere ek olarak, önyükleme, geriyükleme, kurtarma ve/veya bakım için önemli olan ikilileri içerir. [27] /usr bağlandıktan sonra (herhangi bir problem olmadığında) buradan çalıştırılan programlar genellikle /usr/sbin içerisine yerleştirilir. Yerel olarak kurulmuş sistem yönetim programları /usr/local/sbin içerisine yerleştirilmelidir. [28]

Gereksinimler

Aşağıdaki komutlar veya komutlara sembolik bağlar /sbin içerinde bulunmalıdır

KomutTanımlama
shutdownSistemi kapatmaya yarayan komut.

Özel Seçenekler

Aşağıdaki komutlar veya komutlara sembolik bağlar, ilgili altsistem kurulmuş ise /sbin içerisinde bulunmalıdır:

KomutTanımlama
fastbootSistemin disklerin kontrol edilmeden yeniden başlatılması (seçimlik)
fasthaltSistemin disklerin kontrol edilmeden kapatılması (seçimlik)
fdiskBölümleme tablosu işleyicisi (seçimlik)
fsckDosya sistemi kontrol ve onarım aracı (seçimlik)
fsck.*Özel bir dosya sistemi için kontrol ve onarım aracı (seçimlik)
gettygetty programı (seçimlik)
haltSistemi durduran komut (seçimlik)
ifconfigAğ arayüzü yapılandırıcısı (seçimlik)
initİlk süreçler (seçimlik)
mkfsDosya sistemi oluşturma komutu (seçimlik)
mkfs.*Özel bir dosya sistemi oluşturma komutu (seçimlik)
mkswapTakas alanı oluşturma komutu (seçimlik)
rebootSistemi yeniden başlatma komutu (seçimlik)
routeIP yönlendirme tablosu aracı (seçimlik)
swaponSayfalamayı ve değiş-tokuşu etkinleştirir (seçimlik)
swapoffSayfalamayı ve değiş-tokuşu pasifleştirir (seçimlik)
updateSistem tamponunu düzenli olarak alma (flush) süreci (seçimlik)

/srv : Sistem tarafından sağlanan hizmetler için veri

Amaç

/srv sistem tarafından sunulan konuma-özel verileri içerir.

Mantıksal Temel

Bunu belirtmenin ana sebebi kullanıcıların belirli bir hizmet için verilerin bulunduğu dizinleri bulabilmeleri, ve salt-okunur, yazılabilir, betik veriler için tekil ağaç isteyen hizmetlerin, uygun bir şekilde yerleştirilebilmesidir. Sadece belirli bir kullanıcıyı ilgilendiren veriler kullanıcının ev dizininde bulunmalıdır.

/srv'nin altdizinlerini isimlendirme yöntemi hankkında bir belirtim yoktur çünkü bunun nasıl yapılacağı hakkında bir fikir birliği oluşmamıştır. /srv altındaki verileri yapılandırmayla ilgili bir yöntem protokol tabanlıdır. Örn. ftp, rsync, www ve cvs. Geniş sistemlerde /srv'yi yönetimsel açıdan yapılandırmak kullanışlı olabilir. /srv/physics/www, /srv/compsci/cvs vb. Bu kurulum sistemden sisteme değişir. Bu yüzden /srv altında belirli bir dizinde bulunan programlar veya /srv altında saklanması gereken veriler yoktur. Bununla birlikte /srv FHS uyumlu sistemlerde herzaman mevcuttur ve böyle veriler için varsayılan konumdur.

Dağıtımlar bu dizin içinde bulunan yerel olarak kurulmuş dosyaları yönetici izni olmadan kaldırmamaya dikkat etmelidirler. [29]

/tmp : Geçici dosyalar

Amaç

/tmp dizini geçici dosya kullanması gereken programlar için erişilebilir olmalıdır.

Programlar /tmp içerisindeki herhangi bir dosya veya dizinin programın bir sonraki çalıştırmasında da bulunacağını varsaymamalıdır.

Mantıksal Temel

IEEE P1003.2 standardı (POSIX, bölüm 2) yukarıdaki bölümle benzer gereksinimler sunar.

/tmp içinde saklanan veriler konuma özel biçimde silinebilse de /tmp içindeki dosya ve dizinlerin sistemin önyüklemesi sırasında silinmesi tavsiye edilir.

FHS bu tavsiyeyi tarihsel emsalleri ve yaygın uygulamaları temel alarak eklemiştir, fakat bunu bir gereklilik yapmamıştır çünkü sistem yönetimi bu standardın kapsamı içinde değildir.



[10] /bin içerisine girecek kadar önemli olmayan komut ikilileri bunun yerine /usr/bin içerisine yerleştirilmelidir. Sadece root olmayan kullanıcılar tarafından ihtiyaç duyulan öğeler ( X Window Systme, chsh, vb.) genellikle kök bölüme konacak kadar önemli değildirler.

[11] Önyükleyicinin bir dosyayı yükleyebilmesi için gereken programlar /sbin içerisine konulmalıdır. Öyükleyici için yapılandırma dosyaları /etc içinde olmalıdır. GRUB önyükleyici kendi yapılandırma dosyalarını önyükleme işleminden okur, bu yüzden bunlar /boot içine yerleştirilmelidir. Diğer taraftan, bu bir yapılandırma dosyasıdır ve /etc içinde bulunmalıdır. Cevap /etc/grub/menu.lst -> /boot/menu.lst gibi bir sembolik bağdır.

[12] [3] Bazı i386 makinelerde donanım sınırlamalarından dolayı /boot dizininin, tamamıyla silindir 1024 altında bulunacak şekilde ayrı bir bölümde bulunması gerekebilir. Belirli MIPS sistemler /boot bölümünün MS-DOS dosya sistemine veya gömülü yazılım (firmware) tarafından erişilebilecek herhangi başka bir dosya sistemine bağlanmasını gerektirebilir. Bu, /boot içinde kullanılabilecek dosya isimleri açısından bir sınırlama olarak sonuçlanabilir (sadece etkilenen sistemler için).

[13] [4] Önyükleme zamanında çağırılan komut betiklerinin kurulumu System V, BSD veya diğer modellere benzeyebilir. Bu konuda daha geniş belirtimler bu standardın gelecek sürümlerinde eklenebilir.

[14] Bu dosyaların doğrudan /etc yerine /etc içindeki bir altdizinde saklanması tavsiye edilir.

[15] Gölge parola grubu kullanan sistemler /etc içerisinde (/etc/shadow ve diğerleri) ek yapılandırma dosyalarına ve /usr/sbin içerinde ek programlara sahip olacaktır.

[16] Linux sistemlerde bu, /proc/mounts dizinine bir sembolik bağ olabilir. Bu durumda bu istisna gerekli değildir.

[17] /etc/X11/xdm xdm için yapılandırma dosyalarını tutar. Bunlar daha önce çoğu /usr/lib/X11/xdm içinde bulunan dosyalardır. xdm için bazı yerel değişken veriler /var/lib/xdm içinde saklanır.

[18] Farklı kişiler kullanıcı hesaplarını çeşitli yerlere yerleştirirler. Bu bölüm sadece kullanıcı ev dizinleri için önerilen yerleşimi tanımlar; bununla birlikte tüm FHS-uyumlu datımcıların ev dizinleri için bunu varsayılan olarak kullanmasını tavsiye ederiz. Küçük sistemler üzerinde her kullanıcının dizini /home/smith, /home/torvalds, /home/operator vs. gibi tipik olarak /home içindeki birçok dizinden biridir. Büyük sistemlerde (özellikle /home dizininin NFS ile birçok konak arasında paylaşıldığında) kullanıcı ev dizinlereini alt gruplara ayırmak kullanışlıdır. Alt gruplara ayırma /home/staff, /home/guests, /home/students, vb. altdizinler kullanılarak yapılabilir.

[19] Eğer bir kullanıcının ev dizinini bulmak isterseniz, /etc/passwd dosyasına bakmak yerine getpwent(3) kütüphane fonksiyonunu kullanmalısınız çünkü kullanıcı bilgileri NIs gibi uzaktan kullanılan bir sistemle tutuluyor olabilir.

[20] Otomatik kaydetme ve kilit dosyaları dışında programların ev dizini içinde kullanıcının bilgisi dışında noktalı dosyalar veya dizinler oluşturmaktan imtina etmeleri tavsiye edilir.

[21] Sadece /usr içindeki ikililer tarafından ihtiyaç duyulan paylaşılan kütüphaneler (X Window ikilileri gibi) /lib içinde olmamalıdır. Burada yalnızca /bin ve /sbin içinedki ikililerin ihtiyaç duyduğu paylaşılan kütüphaneler bulunmalıdır. Özellikle, libm.so.* kütüphanesi eğer /bin veya /sbin içindeki herhangi biri için gerekli değilse /usr/lib dizinine yerleştirilmelidir.

[22] Bu ikilinin olağan yeri /usr/bin/cpp dizinidir.

[23] Bu yaygın olarak 64-bit veya 32-bit çoklu ikili biçimi destekleyen sistemler üzerinde kullanılır, fakat aynı isimde kütüphaneleri gerektirir. Bu durumda, /lib32 ve /lib64 kütüphane dizinleri ve /lib bunlardan birine sembolik bağ olabilir.

[24] /lib<qual>/cpp dizinine halen izin verilir: bu /lib ve /lib<qual> dizinlerinin aynı olmasına izin verir (biri diğerine sembolik bağ).

[25] İki CDROM sürücü ile uyumlu bir gerçekleştirim /media/cdrom0 ve /media/cdrom1 dizinlerine sahip olabilir ve /media/cdrom bunlardan birine sembolik bağdır.

[26] Eğer root hesabının ev dizini kök bölümde saklanmıyorsa bunu / olarak belirlemek gerekecektir. Yetkisiz kullanıcının yapabileceği işleri root kullanıcısı ile yapmamak, bu hesabı sadece sistem yönetimi için kullanmak tavsiye edilir. Bu yüzden, mail ve diğer uygulamaların dizinleri root'un ev dizininde olmamalı, root, postmaster ve webmaster gibi yönetim rolleri için gelen epostalar uygun hesaba yönlendirilmelidir.

[27] Orjinal olarak /sbin ikilileri /etc içinde tutulur.

[28] Hangi şeylerin "sbin" dizinine gireceğine karar vermek kolaydır: eğer normal (sistem yöneticisi olmayan) bir kullanıcı bunu doğrudan çalıştıracaksa "bin" dizinlerinden birine yerleştirilmelidir.Sıradan kullanıcılar herhangi bir sbin dizinini sistem yoluna eklememelidir. Örneğin, chfn gibi kullanıcıların nadiren kullandığı programlar da /usr/bin içine yerleştirilmelidir. Bunun yanında ping, kesin bir şekilde root için lazım olsa da (ağ bakımı ve teşhisi) sıklıkla kullanıcılar tarafından da kullanılır ve bu yüzden /bin içinde bulunamalıdır. Kullanıcıların, belki belirli setuid ve setgid programları dışında, /sbin içindeki herşeyi okuma ve çalıştırma izinlerine sahip olmaları tavsiye edilir. /bin ve /sbin arasındaki fark güvenlik sebeplerinden veya kullanıcıların işletim sistemini görmemeleri için değil, herkezin kullanıdığı ikililer ile birincil olarak yönetim görevlerinde kullanılan ikililerin iyi bir şekilde ayırımı için oluşturulmuştur. /sbin dizinini kullanıcılar için sınırsız yapmanın buna bağlı bir güvenlik avantajı yoktur.

[29] Bu, bu alanlar sıklıkla dağıtımcı tarafından kurulan her iki dosyayı da içerdiğinden ve sistem yöneticileri tarafından eklendiğinden özellikle önemlidir.