3.8. /home
3.8.1. Amaç
/home
oldukça standart bir kavramdır, ancak açıkça konağa özgü bir dosya sistemidir.[6] Kurulum, konaktan konağa farklılık gösterir. Bu nedenle,
hiçbir uygulama ev dizini için belirli bir konum olduğunu
varsaymamalı, ev dizininin konumunu sorgulamalıdır.[7]
3.8.2. Gereksinimler
Uygulamalar için kullanıcıya özel yapılandırma dosyaları, kullanıcının ev dizininde '.' (nokta) ile başlayan bir dosyada ("nokta dosyası") saklanır. Bir uygulamanın birden fazla nokta dosyası oluşturması gerekiyorsa, bunlar '.' (nokta) ile başlayan bir adla bir alt dizine ("nokta dizini") yerleştirilmelidir. Bu durumda yapılandırma dosyaları '.' (nokta) ile başlamamalıdır.[8]
3.8.3. Ev Dizini Belirtim ve Uzlaşımları
Geçmişte, XDG Temel Dizinleri belirtimi[9] ve kullanıcı dizini içeriklerine ilişkin GLib uzlaşımları dahil olmak üzere, ev dizinlerinin düzenini standart hale getirmek için bir dizi çaba gösterilmiştir.[10] Gelecekte bu yönde ek çabalar mümkündür. Bu belirtim ve uzlaşımları kullanan yazılımlara uyum sağlamak için dağıtımlar, belirtim ve uzlaşımlara uygunluğunu sürdüren dizin hiyerarşileri oluşturabilir. Bu dizin hiyerarşileri, ev dizinlerinin altında bulunabilir.
[6] Farklı kişiler, kullanıcı hesaplarını farklı yerlere yerleştirmeyi tercih eder. Bu bölümde yalnızca kullanıcı ev dizinleri için önerilen yerleşim açıklanmaktadır; yine de, tüm FHS-uyumlu dağıtımların bunu kullanıcı ev dizinleri için öntanımlı konum olarak kullanmasını öneririz. İdari amaçlarla oluşturulan oturum açmayan hesapların ev dizinleri genellikle başka bir yerde bulunur.
Küçük sistemlerde, her kullanıcının ev dizini genel olarak doğrudan
/home
altında, örneğin
/home/smith
, /home/torvalds
,
/home/operator
gibi bir alt dizin olarak
uygulanır. Büyük sistemlerde (özellikle /home
dizinleri NFS kullanan birçok konak arasında paylaşıldığında),
kullanıcı ev dizinleri için alt bölümler oluşturmak yararlıdır. Alt
bölümleme, /home/muhasebe
,
/home/konuklar
,
/home/talebeler
gibi alt dizinler kullanılarak
gerçekleştirilebilir.
[7]
Kullanıcı bilgileri NIS gibi sistemler kullanılarak uzaktan
depolanabileceğinden, bir kullanıcının giriş dizinini bulmak için
/etc/passwd
kayıtlarına güvenmek yerine
fgetpwent
,
getpwent
,
getpwent_r
gibi bir kütüphane işlevi kullanın.
[8] Uygulamaların, dosyaların otomatik kaydedilmesi ve kilitlenmesi dışında, kullanıcının izni olmadan ev dizininde nokta ile başlamayan dosyalar veya dizinler oluşturmaktan kaçınmaları önerilir.
[9] XDG Temel Dizinleri belirtimi http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html ve http://www.freedesktop.org/wiki/Software/xdg-user-dirs adresinde bulunabilir.
[10] GLib uzlaşımlarının açıklaması, http://developer.gnome.org/glib/unstable/glib-Miscellaneous-Utility-Functions.html#GUserDirectory adresindeki GUserDirectory belgelerinde bulunabilir.