Perché alcuni file e cartelle sono nascosti?


12

Riesco a capire la logica di nascondere file e cartelle nella /home/userdirectory per impedire agli utenti di fare casini con le cose. Tuttavia, non vedo come la stessa logica può essere applicata ai file nella /etc, /boote /varle directory che è il dominio degli amministratori.

La mia domanda è: perché alcuni file e cartelle sono nascosti agli amministratori? Esempio:

/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


1
guarda la seconda risposta. Il motivo di quei file che hai elencato è che sono file di configurazione che non devono essere cambiati quotidianamente e sono sempre presenti come .ssh e .bash_profile, quindi non vuoi sapere che sono lì. È solo una convenzione. I file nello spool sono file temporanei come molti degli altri che hai elencato, quindi non dovrebbero essere modificati manualmente, quindi sono nascosti
vfbsilva

3
.ssh e .config sono sempre chiamati così, sia che si trovino nella home directory di un normale utente o nella home directory dell'utente root. / etc / skel dovrebbe essere un prototipo per le home directory dei nuovi utenti, e i file hanno gli stessi nomi lì presenti nelle directory appena create.
Mark Plotnick,

2
Ma quei file non sono nascosti . Il lscomando semplicemente non elenca i file che iniziano con un punto per impostazione predefinita (vedi info ls) - è il design di questo particolare software.

1
@ illuminÉ: Quindi come definiresti "nascosto" se non come "non mostrato di default"? Nota che questa non è solo una proprietà di ls; anche l'espansione della shell di globs non includerà quei file a meno che il punto iniziale non sia esplicitamente incluso nel modello e di solito i file manager non li mostreranno a meno che non si scelga l'opzione "Mostra file nascosti" (sì, l'opzione non usa quel termine).
Celtschk,

Risposte:


15

Hai interpretato erroneamente la logica principale per "file nascosti". Non è

per impedire agli utenti di scherzare con le cose.

Anche se può avere questa conseguenza per utenti molto nuovi fino a quando non imparano cos'è un "file dot" ( file dot e directory dot sono forse termini più appropriati e specifici di "nascosto"). Tutto da solo non ti impedisce di fare casini con le cose - ecco a cosa servono le autorizzazioni. Forse aiuta a indicare ai nuovi utenti che questo è qualcosa con cui non dovrebbero scherzare finché non capiscono a cosa serve.

Potresti quindi pensare al prefisso punto come una sorta di suffisso del file - nota che di solito non ne hanno uno, anche se possono. Indica che questo file non è interessante per la navigazione generale, motivo lsper cui i browser di file normalmente non lo visualizzano. Tuttavia, poiché si tratta di un prefisso anziché di un suffisso, c'è il vantaggio aggiunto, quando li visualizzi ( ls -a) in ordine lessicografico, di vederli elencati tutti insieme.

Lo scopo normale di un file come questo è quello di essere utilizzato da un'applicazione (ad es. Configurazione). Non è necessario utilizzarli direttamente o essere consapevoli di loro.

Quindi, questo "nascondersi" non è tanto inteso a nascondere letteralmente il file all'utente quanto lo è per ridurre il disordine e fornire un po 'di organizzazione concettualmente.


Grazie per la tua risposta. Implica che questi file hanno un significato minore e quindi sono nascosti per ridurre il disordine?
Domanda Overflow

1
Immagino che dipende dalla tua prospettiva. Dice qualcosa su quale sia (probabilmente) il significato del file. Vengono utilizzati nelle directory home per le configurazioni per utente , ma vengono anche utilizzati nelle directory in genere per indicare la configurazione per directory . Due esempi: i sistemi di controllo della versione come git li useranno; quando gitesegue la scansione di una determinata directory, se è presente un .gitignorefile, lo leggerà; e quando inizi gdb, leggerà un $PWD/.gdbinitfile se presente ( e un ~/.gdbinit; un altro metodo comune).
Riccioli d'oro

4

/etc/skelcontiene file da copiare nelle home directory del nuovo utente, quindi i nomi sono ovviamente gli stessi della home directory di un utente. Questo spiega /etc/skel/.bash_profile. La directory /rootè anche una home directory, vale a dire la home directory dell'utente root. Questo spiega /root/.sshe /root/.config.

/etc/.pwd.locksembra essere un file di blocco. Normalmente non sei interessato ai file di blocco, quindi ha senso che sia nascosto.

Per gli altri file, non so a cosa servano, ma sono sicuro che ci sia anche una buona spiegazione del perché sono nascosti.

E, naturalmente, i goldilock hanno ragione nel nascondere i dotfile non per impedire a nessuno di scherzare con loro (l'idea di base di Unix è supporre che l'utente sappia cosa fa), ma per evitare che ingombrino i tuoi elenchi di directory ( sebbene per i file di configurazione nella home directory avrei considerato una etcsottodirectory una soluzione migliore).


+1 "file di configurazione nella home directory" è stata un'idea piuttosto stupida. Sono nascosti solo per apparire quando non vuoi davvero vederli.
maaartinus,

3

Questa potrebbe essere una risposta molto motivata, ma penso che il motivo principale per cui i file e le directory dei punti siano contrassegnati in questo modo non sia quello di nasconderli o oscurarli - Penso sia solo per far sapere all'utente che all'interno di quei file e directory ci sono programmi e utenti impostazioni che possono essere modificate da loro o dai programmi stessi.

Il fatto che i file di punti e le directory di punti siano omessi di default dalla riga di comando lse dalle viste nella maggior parte dei file manager è solo una merce - non vuoi mostrare gli interni / i dettagli per tutto, a meno che non sia richiesto dall'utente; se l'utente desidera modificare un'impostazione e non può farlo tramite una GUI, è molto probabile che trovi l'impostazione che sta cercando in un file dot .

ad es.> all'interno $HOME/.vimrctroverai l'impostazione di configurazione per vim.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.