Comment cacher des répertoires sans changer leur nom?

47

L'OCD en moi veut des répertoires que je n'aime pas que le nom soit caché car je n'interagis pas directement avec eux.

Comment masquer des répertoires sans utiliser la notation par points?

    
posée myusuf3 12.08.2010 - 15:27
la source

6 réponses

77

En supposant que vous ne vous souciez que de cacher les fichiers dans nautilus, il y a un bogue sur le Bugzilla de GNOME à ce sujet. Cependant, à l’heure actuelle, ce bogue n’a pas été résolu.

Il existe un autre moyen de masquer les fichiers d’apparaître dans Nautilus. Si vous créez un fichier appelé .hidden à l'intérieur d'un répertoire, les noms de fichiers répertoriés dans le fichier ne seront pas affichés.

Par exemple, voici un fichier .hidden que j'ai créé. Ce fichier masque tous les fichiers ou dossiers nommés b ou e situés dans le même répertoire que le fichier .hidden.

Vous trouverez ci-dessous une capture d'écran du dossier contenant le fichier .hidden. Notez que vous ne voyez que trois fichiers: a , c et f . Vous ne voyez pas le fichier .hidden en raison du '.' au début de son nom.

La capture d'écran ci-dessous est du même dossier qu'auparavant. Cependant, cette fois, je frappe Ctrl + H pour que nautilus affiche les fichiers et dossiers cachés. Notez comment plusieurs fichiers supplémentaires apparaissent. Vous voyez maintenant plusieurs fichiers précédemment cachés à cause des noms commençant par un ".". Il existe également des fichiers appelés «b» et «e» qui, bien qu’ils n’aient pas de noms commençant par un «.», Ont été masqués en raison de leur liste dans le fichier .hidden.

Les fichiers mentionnés dans le fichier .hidden ne seront cachés que dans nautilus. Des outils tels que ls les afficheront toujours. Le fichier .hidden n'est pas non plus récursif. Il n'affecte que les fichiers du même répertoire que le fichier .hidden.

Certaines personnes sur le forum sont allées de l'avant et ont créé des scripts pour Nautilus qui facilitent l'ajout de fichiers au fichier .hidden. Le premier script contient une bonne explication sur la façon d’installer et d’utiliser les scripts, mais la deuxième script est un peu plus propre et plus court. N'hésitez pas à utiliser l'un ou l'autre script pour vous simplifier la vie.

    
réponse donnée nhandler 16.10.2010 - 20:21
la source
13

Unix et Linux ne supportent que le masquage des dossiers avec . .

Si vous voulez vraiment les éliminer, mais que vous ne voulez pas qu'ils contiennent . s, placez-les tous dans .hidden dans le même répertoire que le fichier ou le dossier à masquer. .hidden ne sera pas exposé par le gestionnaire de fichiers et vos fichiers ne seront pas modifiés.

    
réponse donnée lfaraone 12.08.2010 - 15:35
la source
3

Sur la ligne de commande, vous pouvez essayer quelque chose comme ceci dans votre fichier .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]
}

Cela ajoute une nouvelle commande lsh qui se comporte comme ls , mais masque les fichiers répertoriés dans un répertoire .hidden . (Il manque également certaines de ses fonctionnalités telles que la sortie colorisée et les listes de colonnes.)

    
réponse donnée qneill 01.11.2011 - 03:41
la source
2

Si vous souhaitez masquer des fichiers, il vous suffit de les renommer avec la convention . précédente, tout comme * NIX. Désolé, mais ça y est.

Toutefois, si vous souhaitez masquer le contenu des fichiers / répertoires, vous pouvez le faire avec les autorisations de fichier.

Dites donc que vous avez un tas de fichiers dans un dossier appelé secret_stash , vous pouvez le changer pour que vous seul (le propriétaire) ayez r-x (read, execute) et que tous les autres n'aient rien --- (no accès). Puisque r-x est le minimum requis pour afficher un répertoire (lu pour accéder à son contenu et s'exécuter pour pouvoir le voir), tout ce qui se trouve à l'intérieur de ce dossier est masqué à tout le monde sauf root .

REMARQUE : j'exécute cette démonstration sous la forme root et j'essaie d'accéder au dossier sous la forme myuser

Pour ce faire, vous exécutez chmod 700 dirname (700 signifie rwx------ ):

% mkdir secret_stash
% chmod 700 secret_stash

Et la voici:

% 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

Maintenant et si j'essaie d'y accéder depuis myuser , les tentatives d'accès au dossier ou à son contenu échouent:

% 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

Et maintenant, j'ai dit le mot "secret" tellement de fois qu'il a perdu tout son sens!

    
réponse donnée jathanism 12.08.2010 - 17:14
la source
2

1er élément: si vous souhaitez cacher un fichier à quiconque: installez un système de détection d'intrusion Linux . ( Snort en est un exemple) Vous pouvez même masquer un fichier à partir de "root", mais "root" pourra également annuler ces paramètres.

Mais il peut être plus simple de définir les permissions du répertoire qui contient le fichier "root". Exemple:

 $ 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

Et le fichier 1 est effectivement masqué.

Le répertoire sera visible; le fichier ne sera pas visible. Attention cependant: "root" aura TOUJOURS accès à tous les fichiers.

Avec le chattr , vous pouvez même rendre le fichier immuable.

sudo su    
chattr + i {file}

et même "root" ne peut pas modifier le fichier - sauf si chattr est inversé (et oui "root" peut le faire).

  

Un raccourci clavier pour cela?

Non, c'est quelque chose que vous devez faire manuellement.

    
réponse donnée Rinzwind 07.08.2015 - 09:16
la source
0

Il y a aussi une extension pour Nautilus appelée nautilus-hide qui vous permettra de cacher un fichier ou un dossier avec un simple clic droit dessus.

Pour installer cette extension: sudo apt-get install nautilus-hide dans un terminal, ou recherchez "nautilus hide" dans le logiciel Ubuntu.

N'oubliez pas de quitter Nautilus après l'installation: Alt + F2 et tapez nautilus -q .

    
réponse donnée SNugues 07.08.2015 - 11:00
la source

Lire d'autres questions sur les étiquettes