Ou: onde posso colocar arquivos pertencentes a um grupo?
Suponha que haja dois usuários em um sistema Unix: joe e sarah . Ambos são membros do grupo de entusiastas do cinema . Onde devo colocar os arquivos dos filmes?
/home/{joe,sarah}/movies
não são apropriados porque esses diretórios pertencem a joe / sarah , não a seu grupo;/home/movies-enthusiast
também não é apropriado, porque o entusiasta do cinema é um grupo, não um usuário;/var/movies-enthusiast
pode ser uma opção, mas não tenho certeza se isso é permitido pela ESF;/srv/movies-enthusiast
também pode ser uma opção, no entanto, os filmes não são arquivos exigidos pelos serviços do sistema.
directory-structure
fhs
user16538
fonte
fonte
Respostas:
Não use
/usr
é para dados somente leitura compartilháveis. Os dados aqui devem ser alterados apenas por razões administrativas (por exemplo, a instalação de novos pacotes)./opt
geralmente é para programas independentes ou que precisam ser isolados do restante do sistema por algum motivo (programas honeypot de baixa e média interação, por exemplo)./var
é para "arquivos cujo conteúdo é esperado para mudar continuamente durante a operação normal do sistema - como logs, arquivos em spool e arquivos de email temporários". Eu gosto de pensar assim: se seus dados não parecerem resumidos corretamente em uma lista, geralmente eles não pertencem/var
( no entanto, existem exceções a isso).Usar
/home
é para diretórios pessoais do usuário. Alguns veem esse diretório como uma área para arquivos de grupo também. O FHS observa que "em sistemas grandes (especialmente quando os diretórios / home são compartilhados entre muitos hosts usando o NFS), é útil subdividir os diretórios pessoais do usuário. A subdivisão pode ser realizada usando subdiretórios como / home / staff, / home / convidados, / casa / estudantes etc. "/srv
é um local aceitável e frequentemente preferido para arquivos de grupo. Eu geralmente uso esse diretório para arquivos compartilhados em grupo pelo motivo mencionado na resposta de Chris Down ; Vejo o compartilhamento de arquivos em grupo como um serviço que o servidor fornece.Consulte a página de manual hier (7) (
man hier
) para obter mais informações sobre a finalidade de cada diretório descrito pela ESF.fonte
/srv/data
diretório para arquivos de dados.Na minha opinião, o lugar certo é
/srv/movies-enthusiast
. Um "serviço" não precisa ser um daemon ou programa, apenas um serviço que o sistema fornece (como poder levar seus filmes para lá). Aqui está uma citação da ESF :Definitivamente, acho que seu uso se enquadra nessa definição e fornece um serviço.
fonte
/srv/data
diretório para arquivos de dados.O FHS ( Filesystem Hierarchy Standard ) especifica um layout para "Desenvolvedores de distribuição Unix, desenvolvedores de pacotes e implementadores de sistema" a serem seguidos para não prejudicar seu espaço de nome.
Como é o seu espaço para nome, você deve escolher qualquer nome que considere adequado. Se você acha que
/groups/movies-enthusiast
faz sentido, deve colocá-lo lá. Se você gosta de nomes de caminhos curtos porque são mais fáceis de digitar,/g/movies-enthusiast
(ou talvez/g/m-e
) seria adequado.Como os caminhos escolhidos não são definidos no FHS, a distribuição ou os pacotes de terceiros não devem tocá-los. Como tal, você deve ler o ESF para saber quais caminhos podem ser usados por softwares compatíveis (o índice indicará a maioria do que você precisa saber).
Por exemplo, eu uso pessoalmente
/av
onde armazeno meu conteúdo audiovisual,/src
para código fonte e/data
para dados indefinidos (como imagens de máquinas virtuais, imagens de CD, chroots, pacotes salvos, etc.).fonte
Não há nada errado em criar um novo ponto de montagem ou diretório para esse fim a partir da raiz.
Particularmente, se esse é o objetivo principal deste sistema, eu apenas criaria
/ entusiasta de filmes
Se houver outros "grupos" similares, posso ou não preferir hospedá-los juntos, por exemplo
ou
Perguntas a considerar: Você vai dedicar um ponto de montagem para esse fim?
Você já considerou softlinks?
De qualquer forma, não há regras. Se você deseja tornar um usuário o custodiante e conceder ao restante acesso a este espaço do projeto, fique à vontade para hospedá-lo no diretório inicial do usuário. Ou crie um espaço de nome / home / shared / *. Você é seu próprio chefe.
Oh, uma coisa: faça o que fizer, documente. Ele precisa se tornar parte da recuperação do sistema, verificações diárias, backups, etc. É necessário observar importantes configurações (por exemplo, participações em grupos, conjuntos de permissões, ajustáveis fs para desempenho e qualquer outra coisa que não seja padrão)
fonte
O FHS também é para facilitar a administração, então eu usaria o / srv por esse motivo, embora não seja o que eu fiz. Tenha uma retrospectiva perfeita. Eu uso / export / srv porque está no NAS.
Se for uma caixa suspensa, verifique se ela é setgid e pegajosa. Verifique também se as pessoas que o usam possuem uma umask útil. No entanto, não use o wheel, como fiz no exemplo dos modos de acesso a arquivos. Não tire o eXecute ou você terá uma surpresa O_o.
fonte
É importante lembrar que o ESF soluciona problemas em que os canais de arquivos precisam ser coordenados entre várias partes, como sites locais, distribuições, aplicativos, documentação, etc ; o FHS não tenta definir regras para todas as situações que você possa ter: o posicionamento local de arquivos locais é um problema local ( FHS 3.0, seção 1.1 ).
Portanto, você pode tecnicamente colocar seu
movies
diretório em qualquer lugar, desde que não seja contrário às convenções da ESF . Ainda assim, sua pergunta era sobre o local mais apropriado ; portanto, consideremos algumas respostas comuns (ordenadas entre as mais preferidas e as menos preferidas, considerando seu caso de uso específico):/<someprefix>/<groupname>
ou/media/<volumename>/<groupname>
: Sinceramente, não sei por que essa opção tem má reputação no mundo Linux, mas vamos deixar isso claro: esse é realmente o seu sistema, e a ESF diz que você está livre de criar novos diretórios no nível raiz desde que pois você não entra em conflito com nada para o qual haja semântica bem estabelecida. Você pode, por exemplo, criar um diretório/groups
ou/shared
organizar arquivos neles como achar melhor. Eu sei que alguns administradores preferem tê-los um pouco isolados do resto do sistema de arquivos, então montam um volume distinto (ou seja, abaixo/media/<volumename>/<groupname>
). Ambos estão bem e ambos são compatíveis com a ESF, realmente./srv/<groupname>
ou/srv/<someprefix>/<groupname>
: De acordo com a ESF,/srv
contém dados específicos do site que são atendidos por este sistema . A ESF continua explicando que a metodologia usada para nomear subdiretórios de / srv não é especificada . Pela minha experiência pessoal, a maioria dos administradores que exploram o/srv
diretório continua com um subdiretório por cliente, por site ou por projeto e depois coloca os diretórios de dados nesse nível. Como você o estrutura, o/srv
é perfeitamente aceitável armazenar arquivos para serem compartilhados entre vários usuários, se você puder considerar razoavelmente que o compartilhamento desses arquivos constitui um serviço por si só. Pergunte a si mesmo: "faria sentido, eventualmente, compartilhar esses arquivos através de SMB / NFS / AFS / GIT / ...?" Nesse caso, considere razoavelmente que seu diretório é um serviço local de compartilhamento de arquivos e, portanto, armazene-os dentro de um subdiretório/srv
, mesmo que não haja um daemon realmente servindo esses arquivos em outros sistemas./home/<groupname>
ou/home/<some-prefix>/<groupname>
: A ESF diz:/home
é um conceito bastante padrão, mas é claramente um sistema de arquivos específico do site . Não há absolutamente nenhum requisito de que todo diretório/home
seja o nome de um usuário real e é aceitável ter subdiretórios para grupos, embora seja necessária precaução para evitar possíveis conflitos entre um grupo e um usuário. Ainda assim, eu já vi essa estratégia usada em várias configurações grandes (principalmente universidades) com alguma estratégia de compartimentação para evitar a possibilidade de conflito; por exemplo, usuários reais teriam seus diretórios em/home/students/<studentid>
,/home/teachers/<username>
ou/home/staff/<username>
, enquanto o material compartilhado seria, por exemplo, ser colocado em/home/workgroup/<workgroupname>
. Às vezes, eles também seriam uma subdivisão de departamento; ainda assim, você entendeu a idéia. Para ser sincero, pessoalmente não gosto dessa estratégia, mas facilita um pouco as coisas quando/home
é distribuída entre vários servidores (por exemplo, via NFS), razão pela qual tende a ser preferida em organizações muito grandes.fonte
Eu pessoalmente optaria por / usr / share / movies-entusiasta ou / opt / movies-entusiasta
fonte
Sugiro criar um diretório separado como / opt / movies, definir permissões de usuário e grupo apropriadas para eles e também usar o disco
quota
para evitar o consumo total de disco.fonte
Isso é tanto um comentário quanto uma resposta (então, por favor, não me vote contra!), Mas é muito longo para caber em um comentário.
Eu faço duas coisas, as quais evitam o problema que você está enfrentando.
1) Faço uma partição separada de todo o espaço livre no disco do sistema e identifico o espaço para dados. É para onde vão todos os meus arquivos de mídia atuais e outros dados. Ele é montado automaticamente como / media / dataspace e eu coloco qualquer coisa que seja "data" em um diretório chamado "data" para separá-lo de coisas como arquivos de trabalho, vms ou imagens iso que eu não quero fazer backup rotineiramente.
O uso de uma partição separada tem o benefício adicional de que, se for preenchido, não comprometerá o meu sistema como faria se estivesse armazenado em / ou / home.
2) Coloquei a maioria dos meus dados / mídia, especialmente coisas que não estou usando "agora", em outra unidade física (USB no meu caso com um notebook). Isso facilita o backup e a conexão com outro computador, se necessário.
fonte