Atau: di mana saya bisa meletakkan file milik grup?
Misalkan ada dua pengguna pada sistem Unix: joe dan sarah . Mereka berdua adalah anggota kelompok penggemar film . Di mana saya harus meletakkan file film mereka?
/home/{joe,sarah}/movies
tidak sesuai karena direktori tersebut milik joe / sarah , bukan milik kelompok mereka;/home/movies-enthusiast
juga tidak sesuai, karena penggemar film adalah kelompok, bukan pengguna;/var/movies-enthusiast
mungkin menjadi pilihan, tapi saya tidak yakin ini diizinkan oleh FHS;/srv/movies-enthusiast
mungkin menjadi opsi juga, namun film bukan file yang diperlukan oleh layanan sistem.
directory-structure
fhs
pengguna16538
sumber
sumber
Jawaban:
Jangan gunakan
/usr
hanya untuk data read-only yang dapat dibagi. Data di sini hanya boleh diubah karena alasan administratif (mis. Pemasangan paket baru.)/opt
umumnya untuk program yang mandiri atau perlu diisolasi dari sisa sistem karena beberapa alasan (misalnya, program honeypot interaksi rendah dan menengah)./var
adalah untuk "file yang isinya diharapkan untuk terus berubah selama operasi normal sistem --- seperti log, file spool, dan file email sementara." Saya suka berpikir seperti ini: jika data Anda tidak terlihat dirangkum dalam daftar, umumnya tidak termasuk dalam/var
(meskipun, ada pengecualian untuk ini.)Menggunakan
/home
adalah untuk direktori home user. Beberapa orang melihat direktori ini sebagai area untuk file grup juga. FHS sebenarnya mencatat bahwa, "pada sistem besar (terutama ketika direktori / home dibagikan di antara banyak host menggunakan NFS) berguna untuk membagi direktori home pengguna. Subdivisi dapat dicapai dengan menggunakan subdirektori seperti / home / staff, / home / tamu, / rumah / siswa, dll. "/srv
adalah lokasi yang dapat diterima dan sering dipilih untuk file grup. Saya biasanya menggunakan direktori ini untuk file grup-bersama karena alasan yang disebutkan dalam jawaban Chris Down ; Saya melihat berbagi file grup sebagai layanan yang disediakan server.Lihat halaman manual hier (7) (
man hier
) untuk informasi lebih lanjut mengenai tujuan setiap direktori yang dijelaskan oleh FHS.sumber
/srv/data
direktori untuk file data.Menurut saya, tempat yang tepat adalah
/srv/movies-enthusiast
. "Layanan" tidak harus berupa daemon atau program, hanya harus berupa layanan yang disediakan oleh sistem (seperti bisa mendapatkan film Anda di sana). Berikut ini kutipan dari FHS :Saya pikir penggunaan Anda termasuk dalam definisi itu, dan menyediakan layanan.
sumber
/srv/data
direktori untuk file data.The Filesystem Hierarchy Standard (FHS) menentukan tata letak untuk "pengembang Unix distribusi, pengembang paket, dan pelaksana sistem" untuk mematuhi agar tidak membuat berantakan Anda namespace.
Karena Anda namespace, Anda harus memilih nama yang Anda merasa cocok. Jika menurut Anda
/groups/movies-enthusiast
masuk akal, Anda harus meletakkannya di sana. Jika Anda menyukai nama jalur pendek karena lebih mudah diketik,/g/movies-enthusiast
(atau mungkin/g/m-e
) akan cocok.Karena jalur yang Anda pilih tidak ditentukan dalam FHS, paket distribusi atau pihak ketiga tidak boleh menyentuhnya. Karena itu, Anda harus membaca FHS untuk mengetahui jalur apa yang dapat digunakan oleh perangkat lunak yang sesuai (daftar isi akan memberi tahu Anda sebagian besar dari apa yang perlu Anda ketahui).
Sebagai contoh, saya pribadi menggunakan
/av
tempat saya menyimpan konten audio-visual,/src
untuk kode sumber dan/data
untuk data yang tidak ditentukan (seperti gambar mesin virtual, gambar cd, chroot, paket yang disimpan, dll).sumber
Tidak ada yang salah dengan membuat titik mount atau direktori baru untuk tujuan ini dari root.
Khususnya jika ini adalah tujuan utama dari sistem ini, saya hanya akan membuat
/ penggemar film
Jika ada "grup" serupa lainnya, saya mungkin atau mungkin tidak memilih untuk menjadi tuan rumah bersama, misalnya
atau
Pertanyaan untuk dipertimbangkan: Apakah Anda akan mendedikasikan titik-mount untuk tujuan ini?
Sudahkah Anda mempertimbangkan softlink?
Bagaimanapun tidak ada aturan. Jika Anda ingin menjadikan satu pengguna kustodian dan memberikan sisanya akses ke ruang proyek ini, jangan ragu untuk menyimpannya di direktori home pengguna. Atau buat / home / shared / * name-space. Anda adalah bos Anda sendiri.
Oh, satu hal: Apa pun yang Anda lakukan, lakukan dokumentasikan. Itu perlu menjadi bagian dari pemulihan sistem, pemeriksaan harian, cadangan, dll. Penahanan konfigurasi penting perlu dicatat (misalnya keanggotaan grup, set izin, peragaan kinerja, dan hal lain yang bukan default)
sumber
FHS juga membuat admin mudah jadi saya akan pergi dengan / srv untuk alasan itu meskipun bukan itu yang saya lakukan. Tinjau belakang yang sempurna. Saya menggunakan / mengekspor / srv karena ini di NAS.
Jika kotak drop maka pastikan bahwa keduanya setgid dan lengket. Juga memastikan bahwa mereka yang menggunakannya memiliki umask yang bermanfaat. Namun, jangan gunakan roda seperti yang saya lakukan pada contoh mode akses file. Jangan menelanjangi eXecute atau Anda akan mendapat kejutan O_o.
sumber
Penting untuk diingat bahwa FHS mengatasi masalah di mana penempatan file perlu dikoordinasikan antara banyak pihak seperti situs lokal, distribusi, aplikasi, dokumentasi, dll ; FHS tidak mencoba untuk menetapkan aturan untuk setiap situasi yang mungkin Anda miliki: penempatan lokal file lokal adalah masalah lokal ( FHS 3.0, bagian 1.1 ).
Oleh karena itu, Anda dapat secara teknis meletakkan
movies
direktori Anda di mana saja, asalkan tidak bertentangan dengan konvensi FHS . Namun, pertanyaan Anda adalah tentang tempat yang paling tepat , jadi mari kita pertimbangkan beberapa jawaban umum (dipesan dari yang paling disukai hingga yang kurang disukai, mengingat kasus penggunaan khusus Anda):/<someprefix>/<groupname>
atau/media/<volumename>/<groupname>
: Jujur saya tidak tahu mengapa opsi ini memiliki reputasi buruk di dunia Linux, tapi mari kita perjelas: ini benar - benar sistem Anda , dan FHS mengatakan bahwa Anda bebas dari membuat direktori baru di tingkat root selama karena Anda tidak bertentangan dengan apa pun yang ada semantik mapan. Misalnya Anda dapat membuat direktori/groups
atau/shared
dan mengatur file-file di dalamnya sesuai keinginan Anda. Saya tahu bahwa beberapa administrator lebih suka memiliki ini agak terisolasi dari sisa filesystem, sehingga mereka me-mount volume yang berbeda (mis. Di bawah/media/<volumename>/<groupname>
). Keduanya baik-baik saja dan keduanya sesuai FHS, sungguh./srv/<groupname>
atau/srv/<someprefix>/<groupname>
: Menurut FHS,/srv
berisi data spesifik situs yang dilayani oleh sistem ini . FHS kemudian menjelaskan bahwa metodologi yang digunakan untuk menamai subdirektori dari / srv tidak ditentukan . Dari pengalaman pribadi saya, sebagian besar administrator yang mengeksploitasi/srv
direktori berjalan dengan subdirektori per-klien, per-situs atau per-proyek, dan kemudian menempatkan direktori data pada tingkat itu. Bagaimanapun Anda menyusunnya, the/srv
sangat dapat diterima untuk menyimpan file untuk dibagikan di antara beberapa pengguna jika Anda dapat mempertimbangkan bahwa berbagi file-file ini merupakan layanan dengan sendirinya. Tanyakan kepada diri sendiri: "Apakah masuk akal untuk akhirnya membagikan file-file itu melalui SMB / NFS / AFS / GIT / ...?" Jika demikian, maka Anda dapat dengan wajar mempertimbangkan bahwa direktori Anda adalah layanan berbagi file lokal, dan dengan demikian menyimpannya di dalam subdirektori/srv
, meskipun tidak ada daemon yang benar-benar melayani file-file itu ke sistem lain./home/<groupname>
atau/home/<some-prefix>/<groupname>
: FHS mengatakan:/home
adalah konsep yang cukup standar, tetapi jelas merupakan sistem file spesifik-situs . Sama sekali tidak ada persyaratan bahwa setiap direktori di bawah/home
adalah nama pengguna yang sebenarnya, dan dapat diterima untuk memiliki subdirektori untuk grup, meskipun tindakan pencegahan diperlukan untuk menghindari konflik akhirnya antara grup dan pengguna. Namun, saya telah melihat strategi ini digunakan dalam beberapa pengaturan besar (terutama universitas) dengan beberapa strategi kompartimentasi untuk menghindari kemungkinan konflik; misalnya, pengguna nyata akan memiliki direktori home mereka di/home/students/<studentid>
,/home/teachers/<username>
atau/home/staff/<username>
, sementara barang yang dibagikan misalnya akan dimasukkan/home/workgroup/<workgroupname>
. Kadang-kadang mereka juga akan menjadi subdivisi departemen; tetap saja, Anda mendapatkan idenya. Sejujurnya, saya pribadi tidak suka strategi ini, tetapi itu membuat segalanya sedikit lebih mudah ketika/home
didistribusikan di antara beberapa server (misalnya melalui NFS), itulah sebabnya mengapa cenderung disukai di organisasi yang sangat besar.sumber
Saya pribadi akan memilih / usr / share / penggemar film atau / opt / penggemar film
sumber
Saya sarankan untuk membuat direktori terpisah seperti / opt / film, mengatur hak pengguna dan grup yang sesuai untuk mereka dan Anda juga dapat menggunakan disk
quota
untuk menghindari konsumsi disk total ..sumber
Ini adalah komentar yang sama banyaknya dengan jawaban (jadi tolong jangan downvote saya untuk itu!), Tapi terlalu lama untuk memasukkan komentar.
Saya melakukan dua hal, yang keduanya menghindari masalah yang Anda hadapi.
1) Saya membuat partisi terpisah dari semua ruang kosong pada disk sistem saya dan menamakannya sebagai ruang data. Di situlah semua file media saya saat ini dan data lainnya pergi. Itu akan diotomatisasi sebagai / media / dataset dan saya meletakkan apa pun yang "data" di bawah direktori yang disebut "data" untuk memisahkannya dari hal-hal seperti file kerja, vms, atau gambar iso yang tidak ingin saya backup secara rutin.
Menggunakan partisi terpisah memiliki manfaat tambahan yaitu, jika terisi, itu tidak membahayakan sistem saya seperti jika disimpan di / atau / home.
2) Saya menaruh sebagian besar data / media saya, terutama hal-hal yang saya tidak gunakan "sekarang", pada drive fisik lain (USB dalam kasus saya dengan notebook). Itu membuatnya mudah untuk dicadangkan dan mudah dipasang ke komputer lain, jika perlu.
sumber