Kullanıcılar arasında paylaşılan dosyaların yerleştirileceği en uygun dizin hangisidir?


82

Veya: bir gruba ait dosyaları nereye koyabilirim?

Unix sisteminde iki kullanıcı olduğunu varsayalım: joe ve sarah . Her ikisi de film meraklısı grubunun üyeleridir . Film dosyalarını nereye koymalıyım?

  • /home/{joe,sarah}/moviesuygun değil çünkü bu rehberler gruplarına değil, joe / sarah'e aittir ;

  • /home/movies-enthusiastuygun değildir, çünkü filmler meraklısı bir kullanıcı değil, bir gruptur;

  • /var/movies-enthusiast bir seçenek olabilir, ancak bunun FHS tarafından izin verildiğinden emin değilim;

  • /srv/movies-enthusiast bir seçenek de olabilir, ancak filmler sistem hizmetleri için gerekli dosyalar değildir.


6
FHS'den bahsetti! Bu * nix kullanıcısı ve 20 yıllık geçici sistem yöneticisi bunu bilmiyordu. Teşekkür ederim!
CPRitter

Yanıtlar:


71

Kullanma

  • /usrpaylaşılabilir salt okunur veriler içindir. Buradaki veriler sadece idari nedenlerden dolayı değişmelidir (örn. Yeni paketlerin kurulumu).
  • /opt genellikle kendi kendine yeten veya herhangi bir nedenle sistemin geri kalanından izole edilmesi gereken programlar içindir (örneğin düşük ve orta etkileşimli bal küpü programları).
  • /variçindir "içeriği sürekli olarak bu tür günlükleri, biriktirme dosyaları ve geçici e-posta dosyaları gibi sisteminin normal çalışması --- sırasında değişmesi bekleniyor dosyalar." Bunun gibi düşünmeyi seviyorum: eğer verileriniz bir listede özetlenmiş gibi görünmezse, genellikle buna ait değildir /var(buna rağmen istisnalar vardır).

kullanım

  • /homekullanıcı ev dizinleri içindir. Bazıları bu dizini grup dosyalarının da alanı olarak görüyorlar. FHS aslında “büyük sistemlerde (özellikle / ana sayfa dizinleri NFS kullanan birçok ana bilgisayar arasında paylaşıldığında) kullanıcı ana sayfa dizinlerini alt bölümlere ayırmanın yararlı olduğunu belirtmektedir. / misafir, / ev / öğrenci vb.
  • /srvgrup dosyaları için kabul edilebilir ve sıklıkla tercih edilen bir konumdur. Genel olarak bu dizini, Chris Down'ın cevabında belirtilen sebeple grup paylaşımlı dosyalar için kullanıyorum ; Grup dosya paylaşımını sunucunun sunduğu bir servis olarak görüyorum.

man hierFHS tarafından açıklanan her dizinin amacı hakkında daha fazla bilgi için hier (7) man sayfasına ( ) bakın.


1
Sanırım daha genel bir durumda bir tanesi /srv/dataveri dosyaları için dizin kullanabilir .
Victor Yarema

3
Adam'ın kendisinden bahsettiği için +1. Bunun var olduğunu bilmiyordum.
Zach Boyd

Yeni bir linux kullanıcısı için teşekkürler, çok yararlı bilgiler ve referanslar.
Shivam

28

Bence doğru yer burası /srv/movies-enthusiast. Bir "hizmet" bir cenaze programı veya program olmak zorunda değildir, sistemin sağladığı bir hizmet olmalıdır (örneğin, filmlerinizi oraya götürmek gibi). İşte FHS'den bir alıntı :

/ srv, bu sistem tarafından sunulan siteye özgü verileri içerir.

Kesinlikle kullanımınızın bu tanımın altında kaldığını ve hizmet sunduğunu düşünüyorum.


Sanırım daha genel bir durumda bir tanesi /srv/dataveri dosyaları için dizin kullanabilir .
Victor Yarema

11

Dosya Sistemi Hiyerarşi Standardı (FHS) pisletmek kalmamak için uymaları "Unix dağıtım geliştiricileri, paket geliştiricileri ve sistem gerçeklenimcileri" için bir düzen belirtir senin ad.

Olduğu gibi sizin ad, ne hissettiğini herhangi bir ad uygundur seçmelisiniz. /groups/movies-enthusiastMantıklı bulursanız , oraya koymalısınız. Kısa yol adlarını seviyorsanız, yazmaları daha kolay oldukları için /g/movies-enthusiast(veya belki de /g/m-e) uygun olur.

Seçtiğiniz yollar FHS'de tanımlanmadığından, dağıtım veya üçüncü taraf paketlerinin bunlara dokunmaması gerekir. Bu nedenle, uyumlu yazılım tarafından hangi yolların kullanılabileceğini bilmek için FHS'yi okumalısınız (içindekiler tablosu bilmeniz gerekenlerin çoğunu size söyleyecektir).

Örneğin, /avgörsel-işitsel içeriğimi nerede sakladığım, /srckaynak kodu ve /datatanımsız veriler için (sanal makine görüntüleri, cd görüntüleri, chroots, kaydedilmiş paketler, vb.) Kişisel olarak kullanıyorum.


Tüm bu dosyalar için kişisel olarak / data, sonra görsel-işitsel içerik için / data / filmler, kaynak kodu için / data / src, / data / müzik kullanıyorum. hepsi bir arada (hiyerarşik) bir yerde.
meduz

Bir dev, distro dev, pkg dev veya sistem uygulayıcısı olmasanız bile, genellikle iyi bir fikrin standartlarını takip etmek veya bunlara uymak.
Felipe Alvarez

Yeni bir dizin eklemek FHS'ye karşı değildir ; Aslında, yeni dizinler oluşturmamasının bazen FHS ile uyumlu kalması gerektiğini savunuyorum ! FHS özellikle birden fazla taraf arasında koordine edilmesi gerekmeyen herhangi bir sorunun o standardın kapsamı dışında olduğunu belirtmektedir. Bu nedenle, FHS tanımlı dizinlerden birinin içindeki olası her ihtiyaca uymaya çalışmak, dosyaların olmaması gerektiği yerde dizinlere yerleştirildiği durumlar yaratmak zorundadır.
jwatkins

7

Kökten bu amaç için yeni bir bağlama noktası veya dizin oluştururken yanlış bir şey yoktur.

Özellikle, bu sistemin temel amacı bu ise, ben sadece yaratacağım.

/ Film-meraklısı

Başka benzer "gruplar" varsa, onları bir arada barındırmayı tercih edebilir veya etmeyebilirim, örneğin

/data/movies-entusiast
/data/next-group
etc

veya

/share/movies-enthusiast
/share/next-idea
etc

Dikkate alınacak sorular: Bu amaç için bir başlangıç ​​noktası belirleyecek misiniz?

Softlinks düşündün mü?

Her durumda kural yoktur. Bir kullanıcıyı vesayet ettirmek ve geri kalanına bu proje alanına erişim izni vermek istiyorsanız, onu kullanıcının giriş dizininde barındırmaktan çekinmeyin. Veya bir / home / paylaşılan / * ad alanı oluşturun. Sen kendi patronun.

Oh, bir şey: Ne yaparsanız yapın, belgelendirin. Sistem kurtarma, günlük kontroller, yedeklemeler, vb. Bir parçası haline gelmesi gerekiyor.


1

FHS de yönetici kolaylaştırmak için bu yüzden / srv ile gitmek istiyorum, ancak ne yaptığını değil. Yine de mükemmel bir görüşe sahip ol. / Export / srv kullanıyorum çünkü NAS'ta.

Bir bırakma kutusu varsa, hem sabit hem de yapışkan olduğundan emin olun. Ayrıca, kullananların yararlı bir umask olmasını sağlayın. Ancak, dosya erişim modları örneğinde yaptığım gibi tekerleği kullanmayın. EXecute'u soyun yoksa bir O_o sürpriziyle karşılaşacaksınız.

bash-3.2$ mkdir movies
bash-3.2$ sudo chmod 03771 movies
Password:
bash-3.2$ ls -ld movies/
drwxrws--t 2 andrewb wheel 68 Apr  4 17:09 movies/
bash-3.2$ umask 026
bash-3.2$ touch movies/junk
bash-3.2$ ls -l movies/
total 0
-rw-r----- 1 andrewb wheel 0 Apr  4 17:09 junk

1

FHS'nin dosya yerleşimlerinin yerel siteler, dağıtımlar, uygulamalar, belgeler vb . Gibi birçok taraf arasında koordine edilmesi gereken hususları ele aldığını hatırlamak önemlidir ; FHS, sahip olabileceğiniz her durum için kurallar koymaya çalışmaz: yerel dosyaların yerel olarak yerleştirilmesi yerel bir sorundur ( FHS 3.0, bölüm 1.1 ).

Bu nedenle, moviesdizini FHS kurallarına aykırı olmadığı sürece teknik olarak herhangi bir yere koyabilirsiniz . Yine de, sorunuz en uygun yerle ilgiliydi , o yüzden birkaç genel cevabı ele alalım (özel kullanım durumunuz göz önüne alındığında, en çok tercih edilenler arasından daha az tercih edilenler arasından sipariş verdim):

  • /<someprefix>/<groupname>veya /media/<volumename>/<groupname>: Dürüst olmak gerekirse, bu seçeneğin neden Linux dünyasında kötü bir üne sahip olduğunu bilmiyorum, ama şunu açıklığa kavuşturalım: bu gerçekten sizin sisteminizdir ve FHS, kök düzeyinde yeni dizinler oluşturmaktan özgür olduğunuzu söylüyor yerleşik bir semantiğin olduğu hiçbir şeyle çakışmadığınız için. Örneğin bir dizin oluşturabilir /groupsveya /sharedbunları uygun gördüğünüz şekilde düzenleyebilirsiniz. Bazı yöneticilerin, bunları dosya sisteminin geri kalanından biraz izole etmeyi tercih ettiklerini biliyorum, bu yüzden ayrı bir birim oluşturuyorlar (yani altında /media/<volumename>/<groupname>). Her ikisi de gayet iyi ve her ikisi de gerçekten FHS uyumlu.

  • /srv/<groupname>veya /srv/<someprefix>/<groupname>: FHS'ye göre, /srvbu sistem tarafından sunulan siteye özgü verileri içerir . FHS daha sonra / srv alt dizinlerini adlandırmak için kullanılan metodolojinin belirtilmediğini açıklamaya devam ediyor . Kişisel deneyimlerime göre, /srvdizini kullanan çoğu yönetici, müşteri başına, site başına veya proje başına alt dizine devam eder ve ardından veri dizinlerini bu düzeye koyar. Bununla birlikte, onu/srvBu dosyaları paylaşmanın kendi başına bir hizmet teşkil ettiğini makul bir şekilde düşünebilirsiniz, birkaç kullanıcı arasında paylaşılacak dosyaları depolamak için mükemmel bir şekilde kabul edilebilir. Kendinize sorun: "Sonunda bu dosyaları SMB / NFS / AFS / GIT / ... ile paylaşmak mantıklı olur mu?" Öyleyse, dizininizin yerel bir dosya paylaşım hizmeti olduğunu makul bir şekilde düşünebilir ve böylece /srvbu dosyaları başka sistemlere sunmakta olan bir arka plan programı olmasa da, bunları bir alt dizininde saklayabilirsiniz .

  • /home/<groupname>veya /home/<some-prefix>/<groupname>: FHS diyor ki: /homeoldukça standart bir konsepttir, ancak açıkça siteye özgü bir dosya sistemidir . Her dizinin /homegerçek bir kullanıcı adı olması kesinlikle şart değildir ve gruplar ile alt dizinlerin olması kabul edilebilir olmakla birlikte, bir grup ile kullanıcı arasındaki nihai çatışmaları önlemek için önlem alınması gerekir. Yine de, bu stratejiyi çatışma olasılığını önlemek için bazı tamamlayıcı stratejilerle birlikte birçok büyük kurulumda (özellikle üniversiteler) kullanıldığında gördüm; örneğin, gerçek kullanıcıların ev dizinleri de olurdu /home/students/<studentid>, /home/teachers/<username>ya da /home/staff/<username>paylaşılan şeyler, örneğin koymak olacağını ise,/home/workgroup/<workgroupname>. Bazen onlar da bir bölüm alt bölümü olacaktı; yine de fikri anladın. Dürüst olmak gerekirse, kişisel olarak bu stratejiyi sevmiyorum, ancak /homebirkaç sunucuya (örneğin NFS yoluyla) dağıtıldığında işleri biraz daha kolaylaştırıyor , bu yüzden çok büyük kuruluşlarda tercih edilme eğiliminde.


0

Şahsen / usr / share / film meraklısı veya / opt / film meraklısı seçerdim


0

/ Opt / movies gibi ayrı bir dizin oluşturmanızı, bunlar için uygun kullanıcı ve grup izinlerini ayarlamanızı ve quotatoplam disk tüketimini önlemek için diski kullanabilirsiniz .


0

Bu, bir cevap kadar bir yorumdur (bu yüzden lütfen bana bunun için beni düşürmeyin!), Ancak bir yorumda bulunmak için çok uzun.

Her ikisi de karşılaştığınız sorunu önleyen iki şey yapıyorum.

1) Sistem diskimdeki tüm boş alanların ayrı bir bölümünü oluşturup veri alanını etiketliyorum. Geçerli medya dosyalarımın ve diğer verilerimin gittiği yer / Media / dataspace olarak autoounted olur ve rutin olarak yedeklemek istemediğim iş dosyaları, vms veya iso görüntüleri gibi şeylerden ayırmak için "data" adlı bir dizinin altına "data" olan bir şey koyarım.

Ayrı bir bölüm kullanmanın, doldurursa, / veya / home altında depolandığı gibi sistemimi tehlikeye atmaması gibi ek bir faydası vardır.

2) Verilerim / ortamımın çoğunu, özellikle de "şu anda" kullanmadığım şeyleri başka bir fiziksel sürücüye koydum (bir dizüstü bilgisayar ile benim durumumda USB). Bu, gerekmesi halinde, yedeklemeyi ve başka bir bilgisayara bağlamayı kolaylaştırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.