Por que alguns arquivos e pastas estão ocultos?

12

Eu posso entender a lógica de ocultar arquivos e pastas no /home/userdiretório para impedir que os usuários mexam com as coisas. No entanto, eu não vejo como o mesmo raciocínio pode ser aplicado a arquivos no /etc, /boote /vardiretórios que é o domínio de administradores.

Minha pergunta é por que alguns arquivos e pastas estão ocultos dos administradores? Exemplo:

/boot/.vmlinuz-3.11.1-200.fc20.x86_64.hmac
/etc/.pwd.lock
/etc/selinux/targeted/.policy.sha512
/etc/.java
/etc/.java/.systemPrefs
/etc/skel/.bash_profile
/root/.ssh
/root/.config
/var/cache/yum/x86_64/20/.gpgkeyschecked.yum
/var/spool/at/.SEQ
/var/lib/pear/.filemap
Pergunta Overflow
fonte
1
veja a segunda resposta. A razão para os arquivos que você listou é que são arquivos de configuração que não devem ser alterados diariamente e estão sempre presentes como .ssh e .bash_profile, para que você não queira saber que eles estão lá. É apenas uma convenção. Ficheiros sur carretel são temporário arquivos mesmo que muitos dos outros que você listou para que eles não devem ser editadas manualmente, portanto, eles estão escondidos
vfbsilva
3
.ssh e .config sempre recebem esse nome, estejam eles no diretório inicial do usuário normal ou no diretório inicial do usuário raiz. / etc / skel deve ser um protótipo para os diretórios pessoais dos novos usuários, e os arquivos têm os mesmos nomes que nos diretórios criados recentemente.
Mark Plotnick
2
Mas esses arquivos não estão ocultos . O lscomando simplesmente não lista os arquivos que começam com um ponto por padrão (consulte info ls) - é o design desse software específico.
1
@ illuminÉ: Então, como exatamente você definiria "oculto" se não como "não mostrado por padrão"? Observe que essa não é uma propriedade apenas de ls; também a expansão shell de globs não incluirá esses arquivos, a menos que o ponto inicial seja explicitamente incluído no padrão, e geralmente os gerenciadores de arquivos não os mostrarão, a menos que você escolha a opção "Mostrar arquivos ocultos" (sim, a opção usa esse termo).
Celtschk

Respostas:

15

Você interpretou mal a lógica principal de "arquivos ocultos". Não é

para impedir que os usuários mexam com as coisas.

Embora possa ter essa conseqüência para usuários muito novos até que eles aprendam o que é um "arquivo de pontos" ( arquivo de pontos e diretório de pontos são talvez termos mais adequados e específicos que "oculto"). Por si só, não impede que você mexa com as coisas - é para isso que servem as permissões. Talvez ajude a indicar aos novos usuários que isso é algo que eles não devem mexer até entenderem o que é.

Assim, você pode pensar no prefixo de ponto como uma espécie de sufixo de arquivo - observe que eles geralmente não têm um desses, embora possam. Indica que este arquivo não é de interesse para a navegação geral, e é por isso que lsos navegadores de arquivos geralmente não o exibem. No entanto, como é um prefixo em vez de um sufixo, há o bônus adicional, quando você os exibe ( ls -a) em ordem lexicográfica, para vê-los todos listados juntos.

O objetivo normal de um arquivo como esse é para ser usado por um aplicativo (por exemplo, configuração). Você não precisa usá-los diretamente ou mesmo estar ciente deles.

Portanto, esse "esconderijo" não se destina tanto a ocultar literalmente o arquivo do usuário quanto a reduzir a confusão e fornecer alguma organização conceitualmente.

Cachinhos Dourados
fonte
Obrigado pela sua resposta. Isso implica que esses arquivos são de menor importância e, portanto, estão ocultos para reduzir a confusão?
Pergunta Overflow
1
Eu acho que isso depende da sua perspectiva. Diz algo sobre qual é o significado do arquivo (provável). Eles são usados ​​em diretórios pessoais para configurações por usuário , mas também são usados ​​em diretórios geralmente para indicar por configuração de diretório . Dois exemplos: sistemas de controle de versão como o git os usarão; quando gitvarre um determinado diretório, se houver um .gitignorearquivo presente, ele será lido; e quando você iniciar gdb, ele lerá um $PWD/.gdbinitarquivo, se presente ( e um ~/.gdbinit; outro método comum).
Aprovado
4

/etc/skelcontém arquivos a serem copiados para os diretórios pessoais do novo usuário; portanto, os nomes são obviamente os mesmos do diretório pessoal do usuário. Isso explica /etc/skel/.bash_profile. O diretório /roottambém é um diretório inicial, ou seja, o diretório inicial do usuário root. Isso explica /root/.sshe /root/.config.

/etc/.pwd.lockparece ser um arquivo de bloqueio. Você normalmente não está interessado em arquivos de bloqueio, portanto, faz sentido que ele seja oculto.

Para os outros arquivos, não sei para que servem, mas tenho certeza de que também há uma boa explicação sobre por que eles estão ocultos.

E é claro que goldilocks está certo em que dotfiles estão ocultos não para impedir que alguém mexa com eles (a idéia básica do Unix é assumir que o usuário sabe o que ele faz), mas para impedir que eles sobrecarregem as listagens de diretório ( embora, para arquivos de configuração no diretório inicial, eu considerasse um etcsubdiretório uma solução melhor).

celtschk
fonte
Marcar com +1 "arquivos de configuração no diretório inicial" foi uma ideia bastante estúpida. Eles estão ocultos apenas para aparecer sempre que você realmente não quer vê-los.
Maaartinus
3

Esta pode ser uma resposta altamente opiniated, mas acho que a razão principal de arquivos de ponto e ponto diretórios são marcadas como esse não é para esconder ou obscurecer -los - eu acho que é apenas para deixar o know usuário que dentro desses arquivos e diretórios são o programa de e usuário configurações que podem ser alteradas por eles ou pelos próprios programas.

O fato de os arquivos e diretórios de ponto serem omitidos por padrão pela linha de comando lse das visualizações na maioria dos gerenciadores de arquivos é apenas uma mercadoria - você não deseja mostrar os detalhes / internos de tudo, a menos que solicitado pelo usuário; se o usuário deseja alterar uma configuração e não pode fazê-lo por meio de uma GUI, é muito provável que encontre a configuração que ele está procurando nos arquivos de ponto .

por exemplo,> dentro, $HOME/.vimrcvocê encontrará a configuração para vim.

jimm-cl
fonte