Risposte:
Supponendo che ti interessi solo a nascondere i file dalla visualizzazione in nautilus, c'è un bug su GNOME Bugzilla al riguardo. Tuttavia, attualmente, quel bug non è stato risolto.
Esiste un altro modo per nascondere la visualizzazione dei file in nautilus. Se si crea un file chiamato .hidden
all'interno di una directory, non verrà visualizzato alcun nome file elencato nel file.
Ad esempio, di seguito è riportato un file .hidden che ho creato. Questo file nasconderà tutti i file o le cartelle denominati b
o e
situati nella stessa directory del file .hidden.
Di seguito è riportato uno screenshot della cartella che contiene il file .hidden. Si noti che si vede solo tre file: a
, c
, e f
. Non vedi il file .hidden a causa del '.' all'inizio del suo nome.
Lo screenshot seguente è della stessa cartella di prima. Tuttavia, questa volta, ho premuto Ctrl+ Hper far visualizzare a nautilus file e cartelle nascosti. Nota come ci sono molti file aggiuntivi che compaiono. Ora vedi diversi file precedentemente nascosti a causa del fatto che avevano nomi che iniziavano con un '.'. Ora ci sono anche file chiamati 'b' ed 'e', che pur non avendo nomi che iniziano con un '.', Erano nascosti a causa della loro elencazione 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. Interessa solo i file nella stessa directory in cui si trova il file .hidden.
Alcune persone sul forum sono andate avanti e hanno creato script per nautilus che facilitano l'aggiunta di file al file .hidden. Il primo script include una bella spiegazione su come installare e utilizzare gli script, ma il secondo script è un po 'più pulito e più breve. Sentiti libero di usare uno dei due script per rendere la tua vita un po 'più semplice.
Unix e Linux supporta solo nascondere cartelle che si trovano con a .
.
Se vuoi davvero toglierli di mezzo, ma vuoi che non abbiano .
, inseriscili tutti nella .hidden
stessa directory del file o della cartella che vuoi nascondere. .hidden
non verrà esposto dal file manager e i tuoi file non avranno una modifica del nome.
Dalla riga di comando puoi provare qualcosa del genere nel tuo .bash_aliases
file:
lsh() {
[ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
[ ! -f .hidden ] && ls $@
}
Questo aggiunge un nuovo comando lsh
che si comporta come ls
, ma nasconde i file elencati in una .hidden
directory. (Manca anche alcune delle sue funzionalità come output colorato ed elenchi di colonne.)
Se vuoi nascondere i file, ti rimane solo rinominarli con una precedente .
, come è la convenzione * NIX. Scusa, ma è tutto.
Tuttavia, se si desidera nascondere il contenuto dei file / directory, è possibile farlo con le autorizzazioni dei file.
Quindi supponi di avere un sacco di file in una cartella chiamata secret_stash
, puoi cambiarla in modo che solo tu (il proprietario) tu abbia r-x
(leggi, esegui) e tutti gli altri non abbiano nulla ---
(nessun accesso). Dato che r-x
sono i permanenti minimi necessari 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 ma root
.
NOTA : sto eseguendo questa demo come root
e sto provando ad accedere alla cartella comemyuser
Per fare questo 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 al suo contenuto 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 !!
chmod -R 000 secret_stash
quindi nessuno sarà in grado di leggerlo!
Prima di tutto: se vuoi nascondere un file a chiunque: installa un sistema di rilevamento delle intrusioni di Linux . ( Snort è un esempio) Puoi persino nascondere un file da "root" ma "root" sarà anche in grado di ripristinare quelle impostazioni.
Ma potrebbe essere più semplice impostare le autorizzazioni 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. Mente però: "root" avrà SEMPRE accesso a qualsiasi file.
Insieme a chattr
te puoi persino rendere il file immutabile.
sudo su
chattr + i {file}
e persino "root" non può alterare il file -unless- the chattr
viene ripristinato (e sì "root" può farlo).
Qualche scorciatoia da tastiera per questo?
No, questo è qualcosa che devi fare manualmente.
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, o cercare "nautilus hide" in Ubuntu Software Center.
Non dimenticare di uscire da Nautilus dopo l'installazione: Alt+ F2e digita nautilus -q
.
'
per il nome del file o della cartella che contiene `` spazio, non lo è. Aggiungi semplicemente il nome del file o della cartella