Ответы:
Предполагая, что вы заботитесь только о том, чтобы скрыть файлы от показа в nautilus, в GNOME Bugzilla есть ошибка по этому поводу. Однако в настоящее время эта ошибка не устранена.
Существует еще один способ скрыть файлы от появления в nautilus. Если вы создадите файл с именем .hidden
внутри каталога, любое имя файла, указанное в файле, не будет отображаться.
Например, ниже находится скрытый файл, который я создал. Этот файл будет скрывать любые файлы или папки, названные b
или e
расположенные в том же каталоге, что и скрытый файл.
Ниже приведен скриншот папки, содержащей скрытый файл. Обратите внимание , что вы видите только три файла: a
, c
и f
. Вы не видите скрытый файл из-за '.' в начале его имени.
На скриншоте ниже та же папка, что и раньше. Однако на этот раз я нажал Ctrl+, Hчтобы наутилус отобразил скрытые файлы и папки. Обратите внимание, что появляется несколько дополнительных файлов. Теперь вы видите несколько файлов, которые ранее были скрыты из-за имен, начинающихся с «.». Также теперь есть файлы с именами «b» и «e», которые, хотя и не имеют имен, начинающихся с «.», Были скрыты из-за того, что перечислены в файле .hidden.
Файлы, упомянутые в файле .hidden, будут скрыты только в nautilus. Инструменты, подобные ls
, по-прежнему будут отображать их. Файл .hidden также не является рекурсивным. Это влияет только на файлы в том же каталоге, где находится скрытый файл.
Некоторые люди на форуме пошли дальше и создали сценарии для nautilus, которые облегчают добавление файлов в .hidden файл. Первый сценарий включает хорошее объяснение о том , как установить и использовать скрипты, но второй сценарий немного чище и короче. Не стесняйтесь использовать любой сценарий, чтобы сделать вашу жизнь немного проще.
Unix и Linux поддерживают только скрытие папок, которые находятся с .
.
Если вы действительно хотите убрать их с пути, но хотите, чтобы у них не было .
s, поместите их все .hidden
в один каталог с файлом или папкой, которую вы хотите скрыть. .hidden
не будет отображаться файловым менеджером, и ваши файлы не будут иметь изменение имени.
Из командной строки вы можете попробовать что-то вроде этого в вашем .bash_aliases
файле:
lsh() {
[ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
[ ! -f .hidden ] && ls $@
}
Это добавляет новую команду, lsh
которая ведет себя как ls
, но скрывает файлы, перечисленные в .hidden
каталоге. (Также отсутствуют некоторые его функции, такие как цветной вывод и списки столбцов.)
Если вы хотите скрыть файлы, вам остается только переименовать их с предыдущим .
, как это принято в * NIX. Извините, но это все.
Однако, если вы хотите скрыть содержимое файлов / каталогов, вы можете сделать это с правами доступа к файлам.
Допустим, у вас есть куча файлов в папке с именем secret_stash
, вы можете изменить ее так, чтобы только вы (владелец) имели r-x
(читать, выполнять), а все остальные не ---
имели ничего (нет доступа). Поскольку r-x
для просмотра каталога требуется минимальное количество разрешений (чтение, чтобы получить доступ к его содержимому и выполнить, чтобы иметь возможность их видеть), все, что находится внутри этой папки, фактически скрыто от всех, кроме root
.
ПРИМЕЧАНИЕ : я запускаю эту демонстрацию как root
и пытаюсь получить доступ к папке какmyuser
Для этого вы запускаете chmod 700 dirname
(700 означает rwx------
):
% mkdir secret_stash
% chmod 700 secret_stash
И вот оно:
% 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
Теперь, и если я пытаюсь получить к нему доступ myuser
, попытки получить доступ к папке или ее содержимому не удаются:
% 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
И теперь я сказал слово «секрет» так много раз, что оно потеряло всякий смысл !!
chmod -R 000 secret_stash
тогда никто не сможет его прочитать!
Первое: если вы хотите скрыть файл от кого-либо: установите систему обнаружения вторжений в Linux . ( Например, Snort ) Вы можете даже скрыть файл от «root», но «root» также сможет отменить эти настройки.
Но может быть проще установить права доступа к каталогу, в котором находится файл, «root». Пример:
$ 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
И файл 1
эффективно скрыт от просмотра.
Каталог будет виден; файл не будет виден Имейте в виду, что «root» ВСЕГДА будет иметь доступ к любому файлу.
Вместе с тем chattr
вы даже можете сделать файл неизменным.
sudo su
chattr + i {file}
и даже "root" не может изменить файл, если только он chattr
не восстановлен (и да, "root" может это сделать).
Есть какие-нибудь сочетания клавиш для этого?
Нет, это то, что вам нужно сделать вручную.
Существует также расширение для Nautilus, называемое nautilus-hide , которое позволит вам скрыть любой файл или папку, просто щелкнув по ним правой кнопкой мыши.
Чтобы установить это расширение:
sudo apt-get install nautilus-hide
в терминале или выполните поиск «nautilus hide» в программном центре Ubuntu.
Не забудьте выйти из Nautilus после установки: Alt+ F2и введите nautilus -q
.
'
файла или папки, которое содержит `` пробел, это не так. Просто добавьте имя файла или папки