Come posso nascondere le directory senza cambiarne il nome?

47

L'OCD in me vuole le directory Non mi piace il nome di essere nascosto poiché non interagisco direttamente con loro.

Come posso nascondere le directory senza usare la notazione a punti?

    
posta myusuf3 12.08.2010 - 15:27

6 risposte

77

Supponendo che ti interessi solo per nascondere i file da mostrare in nautilus, c'è un bug su il Bugzilla di GNOME su questo. Tuttavia, al momento, quel bug non è stato risolto.

C'è un altro modo per nascondere i file dall'apparire in nautilus. Se crei un file chiamato .hidden all'interno di una directory, qualsiasi nome file elencato nel file non verrà visualizzato.

Ad esempio, sotto c'è un file .hidden che ho creato. Questo file nasconderà qualsiasi file o cartella denominata b o e che si trova nella stessa directory del file .hidden.

Di seguito è riportato uno screenshot della cartella che contiene il file .hidden. Tieni presente che vengono visualizzati solo tre file: a , c e f . Non vedi il file .hidden a causa del '.' all'inizio del suo nome.

Lo screenshot qui sotto è della stessa cartella di prima. Tuttavia, questa volta, ho premuto Ctrl + H per far sì che nautilus visualizzasse file e cartelle nascosti. Nota come ci sono diversi file aggiuntivi che appaiono. Ora si vedono diversi file precedentemente nascosti a causa dell'inizio di nomi con un '.'. Ora ci sono anche file chiamati "b" ed "e", che sebbene non abbiano nomi che iniziano con ".", Sono stati nascosti perché elencati nel file .hidden.

I file menzionati nel file .hidden saranno nascosti solo in nautilus. Strumenti come ls li visualizzeranno comunque. Anche il file .hidden non è ricorsivo. Riguarda solo i file nella stessa directory in cui si trova il file .hidden.

Alcune persone sul forum sono andati avanti e hanno creato script per nautilus che rendono più facile aggiungere file al file .hidden. Il primo script include una bella spiegazione su come installare e utilizzare gli script, ma secondo script è un po 'più pulito e più breve. Sentiti libero di usare entrambi i copioni per semplificarti la vita.

    
risposta data nhandler 16.10.2010 - 20:21
13

Unix e Linux supportano solo le cartelle nascoste con una . .

Se vuoi davvero metterli da parte, ma vuoi che non abbiano . s, mettili tutti in una .hidden nella stessa directory del file o della cartella che vuoi nascondere. .hidden non sarà esposto dal gestore di file e i tuoi file non avranno un cambio di nome.

    
risposta data lfaraone 12.08.2010 - 15:35
3

Dalla riga di comando puoi provare qualcosa di simile nel tuo file .bash_aliases :

lsh() {
    [ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls [email protected] | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls [email protected]
}

Questo aggiunge un nuovo comando lsh che si comporta come ls , ma nasconde i file elencati in una directory .hidden . (Manca anche alcune delle sue caratteristiche come l'output colorized e gli elenchi di colonne.)

    
risposta data qneill 01.11.2011 - 03:41
2

Se vuoi nascondere i file, non ti resta che rinominarli con un precedente . , così come la convenzione * NIX. Ci dispiace, ma è tutto.

Tuttavia, se desideri nascondere il contenuto dei file / delle directory, puoi farlo con i permessi dei file.

Quindi dì che hai un sacco di file in una cartella chiamata secret_stash , potresti cambiarlo in modo che solo tu (il proprietario) abbia r-x (leggi, esegui) e tutti gli altri non abbiano nulla --- (no accesso). Poiché r-x è il minimo necessario per visualizzare una directory (leggi per accedere ai suoi contenuti ed eseguirli per poterli vedere), qualsiasi cosa all'interno di quella cartella è effettivamente nascosta da tutti tranne root .

NOTA : sto eseguendo questa demo come root e provando ad accedere alla cartella come myuser

Per farlo corri chmod 700 dirname (700 significa rwx------ ):

% mkdir secret_stash
% chmod 700 secret_stash

Ed eccolo qui:

% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash  
./  ../  secret.txt
% cat secret_stash/secret.txt 
TOP SECRET DATA

Ora e se provo ad accedervi da myuser , i tentativi di accedere alla cartella o ai suoi contenuti falliscono:

% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash 
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied

E ora ho detto la parola "segreto" così tante volte che ha perso ogni significato !!

    
risposta data jathanism 12.08.2010 - 17:14
2

1st off: se vuoi nascondere un file da chiunque: installa un sistema di rilevamento delle intrusioni di linux . ( Snort è un esempio) Puoi anche nascondere un file da "root" ma "root" sarà anche in grado di ripristinare quelle impostazioni.

Ma potrebbe essere più semplice impostare semplicemente i permessi della directory che contiene il file su "root". Esempio:

 $ sudo su
 # mkdir tmp/
 # touch tmp/1
 # chown root:root tmp
 # chmod 000 tmp  
 # ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp  
 # exit
exit
 $ ls
tmp
 $ cd tmp/
bash: cd: tmp/: Permission denied

E il file 1 è effettivamente nascosto alla vista.

La directory sarà visibile; il file non sarà visibile Attenzione però: "root" avrà SEMPRE accesso a qualsiasi file.

Insieme a chattr puoi persino rendere il file immutabile.

sudo su    
chattr + i {file}

e anche "root" non può alterare il file -non- se- la chattr viene ripristinata (e sì "root" può farlo).

  

Qualche scorciatoia da tastiera per quello?

No, questo è qualcosa che devi fare manualmente.

    
risposta data Rinzwind 07.08.2015 - 09:16
0

C'è anche un'estensione per Nautilus chiamata nautilus-hide che ti permetterà di nascondere qualsiasi file o cartella con un semplice clic destro su di essi.

Per installare questa estensione: sudo apt-get install nautilus-hide in un terminale, oppure cerca "nautilus hide" nel Software Center di Ubuntu.

Non dimenticare di uscire da Nautilus dopo l'installazione: Alt + F2 e digita nautilus -q .

    
risposta data SNugues 07.08.2015 - 11:00

Leggi altre domande sui tag