Jak mogę ukryć katalogi lub pliki bez zmiany ich nazw?

51

OCD we mnie chce katalogów, których nie lubię, aby były ukryte, ponieważ nie mam z nimi bezpośredniej interakcji.

Jak mogę ukryć katalogi bez użycia kropki?

myusuf3
źródło

Odpowiedzi:

79

Zakładając, że dbasz tylko o ukrywanie plików przed pojawieniem się w nautilusie, w Bugzilli GNOME jest błąd . Jednak obecnie ten błąd nie został rozwiązany.

Istnieje inny sposób na ukrycie plików przed pojawieniem się w nautilusie. Jeśli utworzysz plik o nazwie .hiddenwewnątrz katalogu, nazwa pliku wymieniona w pliku nie będzie wyświetlana.

Na przykład poniżej znajduje się plik .hidden, który utworzyłem. Ten plik ukryje wszystkie pliki lub foldery nazwane blub eznajdujące się w tym samym katalogu, co plik ukryty.

Przykład. Ukryty plik

Poniżej znajduje się zrzut ekranu folderu zawierającego plik .hidden. Zauważ, że widać tylko trzy pliki: a, c, i f. Nie widzisz pliku .hidden z powodu „.” na początku swojej nazwy. Przykładowy folder

Poniższy zrzut ekranu zawiera ten sam folder, co poprzednio. Jednak tym razem nacisnąłem Ctrl+, Haby nautilus wyświetlał ukryte pliki i foldery. Zauważ, że pojawia się kilka dodatkowych plików. Teraz widzisz kilka plików, które wcześniej były ukryte z powodu nazw zaczynających się od „.”. Istnieją teraz również pliki o nazwach „b” i „e”, które chociaż nie mają nazw rozpoczynających się od „.”, Zostały ukryte z powodu umieszczenia ich w pliku .hidden.

Przykładowe foldery z widocznymi ukrytymi plikami

Pliki wymienione w pliku .hidden zostaną ukryte tylko w nautilus. Narzędzia takie lsnadal będą je wyświetlać. Plik .hidden również nie jest rekurencyjny. Wpływa tylko na pliki w tym samym katalogu, w którym znajduje się plik .hidden.

Niektóre osoby na forum stworzyły skrypty dla nautilus, które ułatwiają dodawanie plików do pliku .hidden. Pierwszy skrypt zawiera piękny wyjaśnienia na temat jak zainstalować i używać skryptów, ale drugi scenariusz jest nieco czystsze i krótsze. Możesz użyć dowolnego skryptu, aby ułatwić ci życie.

nhandler
źródło
+1. Tylko uwaga, JEŻELI uważasz, że musisz dodać 'nazwę pliku lub folderu, która zawiera `` spację, tak nie jest. Wystarczy dodać nazwę pliku lub folderu
Anwar
13

Systemy Unix i Linux obsługują tylko ukrywanie folderów z rozszerzeniem ..

Jeśli naprawdę chcesz usunąć je z drogi, ale chcesz, aby nie miały .s, umieść je wszystkie .hiddenw tym samym katalogu, co plik lub folder, który chcesz ukryć. .hiddennie zostanie ujawniony przez menedżera plików, a twoje pliki nie będą miały zmiany nazwy.

lfaraone
źródło
1
tak bardzo chciałbym je zatrzymać w tym samym miejscu :)
myusuf3
1
to rozwiązanie utrzyma je w tym samym miejscu. .hidden nie musi nawet znajdować się w folderze domowym, jeśli nie chcesz. Zwykle używam go na dyskach wymiennych, które mają pliki konfiguracyjne, których nie chcę widzieć.
jumpnett,
1
@ jumpnett jest poprawny, umieść .hidden w tej samej lokalizacji co pliki, które chcesz ukryć, i dodaj nazwy pliku / katalogu do .hidden pliku, po jednym w wierszu. Działa świetnie!
odwrócenie
3

Z linii poleceń możesz wypróbować coś takiego w swoim .bash_aliasespliku:

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

Dodaje to nowe polecenie, lshktóre zachowuje się podobnie ls, ale ukrywa pliki wymienione w .hiddenkatalogu. (Brakuje również niektórych jego funkcji, takich jak pokolorowane dane wyjściowe i listy kolumn).

qneill
źródło
2

Jeśli chcesz ukryć pliki, możesz jedynie zmienić ich nazwę na poprzednią ., podobnie jak w konwencji * NIX. Przepraszam, ale to wszystko.

Jeśli jednak chcesz ukryć zawartość plików / katalogów, możesz to zrobić z uprawnieniami do plików.

Powiedzmy, że masz kilka plików w folderze o nazwie secret_stash, możesz to zmienić, aby tylko Ty (właściciel) miałeś r-x(czytaj, wykonuj), a wszyscy inni nie mieli nic ---(brak dostępu). Ponieważ r-xsą to minimalne uprawnienia potrzebne do przeglądania katalogu (czytaj, aby uzyskać dostęp do jego zawartości i wykonać, aby móc je zobaczyć), wszystko w tym folderze jest skutecznie ukryte przed wszystkimi oprócz root.

UWAGA : uruchamiam to demo jako rooti próbuję uzyskać dostęp do folderu jakomyuser

Aby to zrobić, uruchom chmod 700 dirname(700 środków rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

A oto:

% 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

Teraz i jeśli spróbuję uzyskać do niego dostęp myuser, próby uzyskania dostępu do folderu lub jego zawartości zakończą się niepowodzeniem:

% 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

A teraz powiedziałem słowo „sekret” tyle razy, że straciło wszelki sens !!

jathanizm
źródło
2
Możesz sprawić, że będzie naprawdę ukryty, dzięki czemu chmod -R 000 secret_stashnikt nie będzie mógł go przeczytać!
Marco Ceppi
@Marco Ceppi - ULTIMATE SECRECY!
jathanism
Oczywiście jest to bardziej „Bezpieczeństwo” niż „Obscurity” - tak myślę, czego szukał PO;)
Marco Ceppi
2
@MarcoCeppi: chmod 000 ukryje plik nawet przed właścicielem pliku, z wyjątkiem katalogu głównego, który zawsze może pominąć 000. Jednak właściciel pliku może nadal zmienić uprawnienia pliku do odczytu, więc musisz zmień także własność pliku na root, aby uprawnienia 000 były naprawdę znaczące.
Lie Ryan
2

1st off: jeśli chcesz ukryć plik przed kimkolwiek: zainstaluj system wykrywania włamań do systemu Linux . ( Snort jest przykładem) Możesz nawet ukryć plik przed „rootem”, ale „root” będzie mógł również przywrócić te ustawienia.


Ale może być łatwiej po prostu ustawić uprawnienia katalogu, w którym plik jest ustawiony na „root”. Przykład:

 $ 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

Plik 1jest skutecznie ukryty.

Katalog będzie widoczny; plik nie będzie widoczny. Pamiętaj jednak: „root” ZAWSZE będzie miał dostęp do dowolnego pliku.


Razem z tym chattrmożesz nawet uczynić plik niezmiennym.

sudo su    
chattr + i {file}

i nawet „root” nie może zmienić pliku - chyba że - chattrjest cofany (i tak, „root” może to zrobić).

Jakikolwiek skrót klawiaturowy do tego?

Nie, musisz to zrobić ręcznie.

Rinzwind
źródło
0

Istnieje również rozszerzenie Nautilus o nazwie nautilus-hide , które pozwala ukryć dowolny plik lub folder za pomocą jednego kliknięcia prawym przyciskiem myszy.

Aby zainstalować to rozszerzenie: sudo apt-get install nautilus-hidew terminalu lub wyszukaj „nautilus hide” w Centrum oprogramowania Ubuntu.

Nie zapomnij wyjść z Nautilus po instalacji: Alt+ F2i wpisz nautilus -q.

SNugues
źródło