Thư mục thích hợp nhất để đặt các tệp được chia sẻ giữa những người dùng là gì?


83

Hoặc: tôi có thể đặt các tệp thuộc về một nhóm ở đâu?

Giả sử có hai người dùng trên một hệ thống Unix: joesarah . Cả hai đều là thành viên của nhóm đam mê điện ảnh . Tôi nên đặt các tập tin phim của họ ở đâu?

  • /home/{joe,sarah}/movieskhông phù hợp vì những thư mục đó thuộc về joe / sarah , không thuộc về nhóm của họ;

  • /home/movies-enthusiastcũng không phù hợp, vì người đam mê phim ảnh là một nhóm, không phải người dùng;

  • /var/movies-enthusiast có thể là một lựa chọn, nhưng tôi không chắc FHS cho phép điều này;

  • /srv/movies-enthusiast cũng có thể là một tùy chọn, tuy nhiên phim không phải là tệp được yêu cầu bởi các dịch vụ hệ thống.


6
Bỏ phiếu để đề cập đến FHS! Người dùng * nix này và quản trị viên hệ thống thông thường trong 20 năm không biết đến nó. Cảm ơn bạn!
CPRitter

Câu trả lời:


72

Đừng dùng

  • /usrdành cho dữ liệu chỉ đọc có thể chia sẻ. Dữ liệu ở đây chỉ nên thay đổi vì lý do quản trị (ví dụ: cài đặt gói mới.)
  • /opt nói chung là dành cho các chương trình độc lập hoặc cần được cách ly với phần còn lại của hệ thống vì một số lý do (ví dụ như các chương trình honeypot tương tác thấp và trung bình).
  • /vardành cho "các tệp có nội dung được dự kiến ​​sẽ liên tục thay đổi trong quá trình hoạt động bình thường của hệ thống --- chẳng hạn như nhật ký, tệp đệm và tệp e-mail tạm thời." Tôi thích nghĩ về nó như thế này: nếu dữ liệu của bạn sẽ không được tóm tắt đúng trong một danh sách, thì nó thường không thuộc về /var(mặc dù, có những trường hợp ngoại lệ cho điều này.)

Sử dụng

  • /homelà cho các thư mục nhà người dùng. Một số người xem thư mục này là một khu vực cho các tập tin nhóm. FHS thực sự lưu ý rằng, "trên các hệ thống lớn (đặc biệt là khi các thư mục / home được chia sẻ giữa nhiều máy chủ sử dụng NFS), việc chia nhỏ các thư mục nhà của người dùng có thể được thực hiện bằng cách sử dụng các thư mục con như / home / staff, / home / khách, / nhà / sinh viên, v.v. "
  • /srvlà một vị trí có thể chấp nhận và thường được ưa thích cho các tệp nhóm. Tôi thường sử dụng thư mục này cho các tệp chia sẻ nhóm vì lý do được đề cập trong câu trả lời của Chris Down ; Tôi thấy chia sẻ tệp nhóm là một dịch vụ mà máy chủ cung cấp.

Xem trang man (7) hier ( man hier) để biết thêm thông tin về mục đích của từng thư mục được mô tả bởi FHS.


1
Tôi cho rằng trong một số trường hợp chung hơn, người ta có thể sử dụng /srv/datathư mục cho các tệp dữ liệu.
Victor Yarema

4
+1 để đề cập đến người đàn ông hier. Tôi không biết rằng đã tồn tại.
Zach Boyd

Cảm ơn, thông tin và tài liệu tham khảo rất hữu ích cho người dùng linux mới.
Shivam

28

Theo tôi, đúng chỗ là thế /srv/movies-enthusiast. "Dịch vụ" không nhất thiết phải là trình nền hoặc chương trình, nó chỉ phải là dịch vụ mà hệ thống cung cấp (chẳng hạn như có thể đưa phim của bạn đến đó). Đây là một trích dẫn từ FHS :

/ srv chứa dữ liệu dành riêng cho trang web được phục vụ bởi hệ thống này.

Tôi chắc chắn nghĩ rằng việc sử dụng của bạn nằm trong định nghĩa đó và cung cấp một dịch vụ.


Tôi cho rằng trong một số trường hợp chung hơn, người ta có thể sử dụng /srv/datathư mục cho các tệp dữ liệu.
Victor Yarema

11

Các hệ thống tập tin tiêu chuẩn cấp bậc (đảm bảo VSATTP) quy định cụ thể một cách bố trí cho "nhà phát triển Unix phân phối, các nhà phát triển gói, và người thực hiện hệ thống" để tuân thủ để không làm cho một mớ hỗn độn của bạn namespace.

Vì đó là không gian tên của bạn , bạn nên chọn bất kỳ tên nào bạn cảm thấy phù hợp. Nếu bạn thấy /groups/movies-enthusiastcó ý nghĩa, bạn nên đặt nó ở đó. Nếu bạn thích tên đường dẫn ngắn vì chúng dễ gõ hơn, /g/movies-enthusiast(hoặc có lẽ /g/m-e) sẽ phù hợp.

Vì các đường dẫn bạn chọn không được xác định trong FHS, các gói phân phối hoặc bên thứ ba không được chạm vào chúng. Do đó, bạn nên đọc FHS để biết những đường dẫn nào có thể được sử dụng bởi phần mềm tuân thủ (mục lục sẽ cho bạn biết hầu hết những gì bạn cần biết).

Ví dụ: cá nhân tôi sử dụng /avcho nơi tôi lưu trữ nội dung nghe nhìn của mình, /srccho mã nguồn và /datacho dữ liệu không xác định (như hình ảnh máy ảo, hình ảnh cd, chroots, gói đã lưu, v.v.).


Cá nhân tôi sử dụng / dữ liệu cho tất cả các tệp như vậy, sau đó / data / phim cho nội dung nghe nhìn, / data / src cho mã nguồn, / data / nhạc. tất cả trong một nơi (phân cấp).
meduz

Tuân thủ hoặc tuân thủ các tiêu chuẩn rất thường xuyên là một ý tưởng tốt, ngay cả khi bạn không phải là nhà phát triển, nhà phát triển, nhà phát triển pkg, hoặc người thực hiện hệ thống.
Felipe Alvarez

Thêm một thư mục mới không chống lại FHS; thực sự, tôi sẽ lập luận rằng đôi khi không tạo thư mục mới là cần thiết để duy trì tuân thủ FHS ! FHS đề cập cụ thể rằng bất kỳ câu hỏi nào không cần phối hợp giữa nhiều bên đều nằm ngoài phạm vi của tiêu chuẩn đó. Do đó, cố gắng phù hợp với mọi nhu cầu cuối cùng bên trong một trong các thư mục do FHS xác định bị ràng buộc để tạo ra các tình huống trong đó các tệp được đặt trong các thư mục không nên có.
jwatkins

7

Không có gì sai khi tạo một điểm gắn kết hoặc thư mục mới cho mục đích này từ thư mục gốc.

Đặc biệt nếu đây là mục đích chính của hệ thống này, tôi sẽ chỉ tạo ra

/ người đam mê phim ảnh

Nếu có các "nhóm" tương tự khác, tôi có thể hoặc không muốn lưu trữ chúng cùng nhau, ví dụ:

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

hoặc là

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

Câu hỏi để xem xét: Bạn sẽ dành một điểm gắn kết cho mục đích này?

Bạn đã xem xét các liên kết mềm?

Trong mọi trường hợp không có quy tắc. Nếu bạn muốn làm cho một người dùng trở thành người giám sát và cấp cho phần còn lại quyền truy cập vào không gian dự án này, vui lòng lưu trữ nó trong thư mục nhà của người dùng. Hoặc tạo một / home / shared / * name-space. Bạn tự làm chủ bản thân.

Ồ, một điều: Dù bạn làm gì, hãy làm tài liệu đó. Nó cần phải trở thành một phần của phục hồi hệ thống, kiểm tra hàng ngày, sao lưu, v.v. Việc lưu giữ cấu hình quan trọng cần được lưu ý (ví dụ: thành viên nhóm, bộ quyền, điều chỉnh fs cho hiệu suất và bất kỳ thứ gì khác không phải là mặc định)


1

FHS cũng là để làm cho quản trị viên dễ dàng vì vậy tôi sẽ đi với / srv vì lý do đó mặc dù đó không phải là những gì tôi đã làm. Có nhận thức hoàn hảo mặc dù. Tôi sử dụng / export / srv vì nó trên NAS.

Nếu nó là một hộp thả thì hãy chắc chắn rằng nó vừa cứng vừa dính. Cũng đảm bảo rằng những người sử dụng nó có một ô hữu ích. Tuy nhiên, không sử dụng bánh xe như tôi đã làm trong ví dụ về chế độ truy cập tệp. Đừng loại bỏ eXecute nếu không bạn sẽ gặp bất ngờ về O_o.

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

Điều quan trọng cần nhớ là FHS giải quyết các vấn đề trong đó các vị trí tệp cần được phối hợp giữa nhiều bên như các trang web địa phương, phân phối, ứng dụng, tài liệu, v.v ; FHS không cố gắng đặt quy tắc cho mọi tình huống mà bạn có thể có: vị trí cục bộ của tệp cục bộ là vấn đề cục bộ ( FHS 3.0, phần 1.1 ).

Do đó, về mặt kỹ thuật, bạn có thể đặt moviesthư mục của mình ở bất cứ đâu, miễn là nó không đi ngược lại các quy ước của FHS . Tuy nhiên, câu hỏi của bạn là về nơi thích hợp nhất, vì vậy, hãy xem xét một vài câu trả lời phổ biến (được sắp xếp theo thứ tự ưu tiên nhất cho ít ưu tiên của tôi, với trường hợp sử dụng cụ thể của bạn):

  • /<someprefix>/<groupname>hoặc /media/<volumename>/<groupname>: Tôi thực sự không biết tại sao tùy chọn này có tiếng xấu trong thế giới Linux, nhưng hãy làm rõ điều này: đây thực sự là hệ thống của bạn và FHS nói rằng bạn không cần phải tạo các thư mục mới ở cấp gốc miễn là vì bạn không xung đột với bất cứ điều gì có ngữ nghĩa được thiết lập tốt. Ví dụ, bạn có thể tạo một thư mục /groupshoặc /sharedsắp xếp các tệp trong đó khi bạn thấy phù hợp. Tôi biết rằng một số quản trị viên thích cách ly phần nào với phần còn lại của hệ thống tệp, vì vậy họ gắn kết một khối lượng riêng biệt (ví dụ: bên dưới /media/<volumename>/<groupname>). Cả hai đều ổn và cả hai đều FHS tuân thủ, thực sự.

  • /srv/<groupname>hoặc /srv/<someprefix>/<groupname>: Theo FHS, /srvchứa dữ liệu cụ thể theo trang web được phục vụ bởi hệ thống này . FHS sau đó tiếp tục giải thích rằng phương pháp được sử dụng để đặt tên cho các thư mục con của / srv là không xác định . Từ kinh nghiệm cá nhân của tôi, hầu hết các quản trị viên khai thác /srvthư mục tiếp tục với thư mục con trên mỗi khách hàng, mỗi trang web hoặc mỗi dự án, sau đó đặt các thư mục dữ liệu ở cấp độ đó. Tuy nhiên, bạn cấu trúc nó,/srvhoàn toàn có thể chấp nhận để lưu trữ các tệp được chia sẻ giữa một số người dùng nếu bạn có thể cân nhắc hợp lý rằng việc chia sẻ các tệp này tạo thành một dịch vụ riêng. Hãy tự hỏi: "Liệu cuối cùng có thể chia sẻ các tệp đó thông qua SMB / NFS / AFS / GIT / ...?" Nếu vậy, thì bạn có thể cân nhắc một cách hợp lý rằng thư mục của bạn là một dịch vụ chia sẻ tệp cục bộ và do đó lưu trữ chúng trong thư mục con /srv, mặc dù không có trình nền thực sự phục vụ các tệp đó cho các hệ thống khác.

  • /home/<groupname>hoặc /home/<some-prefix>/<groupname>: FHS nói: /homelà một khái niệm khá chuẩn, nhưng rõ ràng đây là một hệ thống tệp cụ thể theo trang web . Hoàn toàn không có yêu cầu rằng mọi thư mục dưới /hometên của một người dùng thực tế và có thể có các thư mục con cho các nhóm, mặc dù vậy cần phải có biện pháp phòng ngừa để tránh xung đột cuối cùng giữa một nhóm và người dùng. Tuy nhiên, tôi đã thấy chiến lược này được sử dụng trong một số cơ sở lớn (đáng chú ý là các trường đại học) với một số chiến lược hợp tác để tránh khả năng xảy ra xung đột; ví dụ: người dùng thực sẽ có thư mục chính của họ /home/students/<studentid>, /home/teachers/<username>hoặc /home/staff/<username>, trong khi những thứ được chia sẻ chẳng hạn sẽ được đưa vào/home/workgroup/<workgroupname>. Đôi khi họ cũng sẽ là một bộ phận của bộ phận; Tuy nhiên, bạn có được ý tưởng. Thành thật mà nói, cá nhân tôi không thích chiến lược này, nhưng nó làm mọi thứ dễ dàng hơn một chút khi /homeđược phân phối giữa một số máy chủ (ví dụ qua NFS), đó là lý do tại sao nó có xu hướng được ưa thích trong các tổ chức rất lớn.


0

Cá nhân tôi muốn chọn / usr / share / người đam mê phim hoặc / opt / người đam mê phim


0

Tôi đề nghị tạo một thư mục riêng như / opt / movies, đặt quyền người dùng và nhóm phù hợp cho họ và bạn cũng có thể sử dụng đĩa quotađể tránh tổng lượng đĩa tiêu thụ ..


0

Đây là một nhận xét giống như một câu trả lời (vì vậy xin đừng đánh giá thấp tôi về nó!), Nhưng nó quá dài để phù hợp với một nhận xét.

Tôi làm hai việc, cả hai đều tránh được vấn đề bạn gặp phải.

1) Tôi tạo một phân vùng riêng cho tất cả không gian trống trên đĩa hệ thống của mình và gắn nhãn là dataspace. Đó là nơi tất cả các tệp phương tiện hiện tại của tôi và dữ liệu khác đi. Nó được tự động hóa thành / media / dataspace và tôi đặt bất cứ thứ gì là "dữ liệu" trong một thư mục có tên là "dữ liệu" để tách nó khỏi những thứ như tệp công việc, vms hoặc hình ảnh iso mà tôi không muốn sao lưu thường xuyên.

Sử dụng một phân vùng riêng biệt có thêm lợi ích mà nếu nó lấp đầy, nó sẽ không ảnh hưởng đến hệ thống của tôi như nó sẽ được lưu trữ dưới / hoặc / home.

2) Tôi đặt hầu hết dữ liệu / phương tiện của mình, đặc biệt là những thứ tôi không sử dụng "ngay bây giờ" trên một ổ đĩa vật lý khác (USB trong trường hợp của tôi với một máy tính xách tay). Điều đó giúp dễ dàng sao lưu và dễ dàng gắn vào máy tính khác, nếu cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.