Você pode ler sobre isso, por exemplo, na wikipedia. Um trecho:
O Padrão de Hierarquia do Sistema de Arquivos (FHS) define os diretórios principais e seus conteúdos nos sistemas operacionais Linux. Na maior parte, é uma formalização e extensão da hierarquia tradicional do sistema de arquivos BSD.
O FHS é mantido pela Linux Foundation, uma organização sem fins lucrativos que consiste em grandes fornecedores de software e hardware, como HP, Red Hat, IBM e Dell. A versão atual é 3.0, lançada em 3 de junho de 2015.
Uma representação visual com uma breve descrição:
Basicamente, o Linux dividiu a estrutura de diretórios com base na função do que é necessário para tornar o sistema o mais seguro possível com a quantidade mínima de permissões necessárias. Caso contrário, alguém é obrigado a fazer muito trabalho evitável.
Lembre-se de que o Unix e o Linux foram criados como sistemas multi-usuários e o Windows foi criado para um único usuário. Tudo o mais pode ser explicado a partir dessa ideia. Você pode explicar todos os diretórios quando pensar em ser multiusuário e segurança.
3 exemplos:
-
Você verá que os arquivos e diretórios que são apenas administradores são reunidos no mesmo diretório: os s em
/sbin
e/usr/sbin
e/usr/local/sbin
representam sistema. Um usuário normal não pode nem iniciar programas que estão lá. Os arquivos que um usuário normal pode iniciar estão em / bin, / usr / bin, / usr / local / bin com base em onde ele deve residir mais logicamente. Mas se eles forem apenas administradores, devem ir para a versãos
desse diretório. Existe um utilitário famoso chamadofuser
. Você pode matar processos com isso. Se um usuário normal pudesse usar isso, ele seria capaz de matar sua sessão. -
O mesmo vale para
/home
: / home / user1 é propriedade de user1. / home / user2 é propriedade de user2. user2 não tem nenhum negócio fazendo coisas na casa do user1 (e o contrário também é verdade: o user1 não tem nenhum negócio fazendo coisas na casa do user2). Se todos os arquivos estivessem em / home sem nenhum nome de usuário abaixo dele, você teria que dar permissões para cada arquivo e avaliar se alguém tem permissão para gravar / remover esses arquivos. Um pesadelo se você tiver dezenas de usuários. -
Adição em relação às bibliotecas.
/lib/
,/usr/lib/
e/usr/local/lib/
são os locais originais, antes da multilib sistemas existiam e existiam para evitar quebrar coisas./usr/lib32
,/usr/lib/64
,/usr/local/lib32/
,/usr/local/lib64/
são invenções multilib de 32/64 bits.
Não é um conceito estático por qualquer meio. Outros sabores do Linux fizeram ajustes neste layout. Por exemplo; atualmente você verá debian e Ubuntu mudando muito na configuração da ESF desde o SSD é melhor com arquivos somente leitura. Há um movimento em direção a um novo layout onde os arquivos são divididos em um diretório / grupo 'somente leitura' e 'gravável' para que possamos ter uma partição raiz que pode ser montada somente leitura (partição para um ssd) e gravável (sata hdd).
O novo diretório usado para isso (não na imagem) é /run/
.