- Как запретить удаление файла в Linux, даже для Root
- Как сделать каталог неизменяемым в Linux рекурсивно
- «Защита от дурака» или как запретить изменение/удаление важных папок
- Как поставить пароль на папку в Linux
- Как это работает?
- Пароль на папку в Cryptomator
- 1. Установка Cryptomator
- 2. Создание хранилища
- 3. Открытие хранилища
- 4. Блокировка хранилища
- Пароль на папку в CryFS
- 1. Установка CryFS
- 2. Создание хранилища
- 3. Блокировка хранилища
- Выводы
- Команды Linux для работы с файлами
- 1. ls — просмотр содержимого папки
- 2. cd — изменить папку
- 3. rm — удалить файлы
- 4. rmdir — удалить папку
- 5. mv — перемещение файлов
- 6. cp — копирование файлов
- 7. mkdir — создать папку
- 8. ln — создание ссылок
- 9. chmod — изменить права
- 10. touch — создать файл
- 11. mc
- Выводы
Как запретить удаление файла в Linux, даже для Root
Оригинал: How to Make File and Directory Undeletable, Even By Root in Linux
Автор: Aaron Kili
Дата публикации: 10 октября 2017 года
Перевод: А. Кривошей
Дата перевода: июль 2018 г.
В Unix-подобных операционных системах, включая Linux, root — это имя учетной записи или пользователя, который по умолчанию может изменять все каталоги и файлы в системе. В этой статье мы покажем, как сделать каталоги или файлы в Linux недоступными для удаления даже пользователем root.
Чтобы сделать файл неуязвимым для любого пользователя системы, включая root, вам необходимо сделать его неизменяемым с помощью команды chattr. Эта команда изменяет атрибуты файлов в файловой системе Linux.
Приведенная ниже команда делает файл /backups/passwd файл неизменяемым. Это означает, что файл нельзя изменить любым образом: его нельзя удалить или переименовать. Вы даже не можете создать ссылку на него, и никакие данные также не могут быть записаны в файл.
Обратите внимание, что вам нужны привилегии суперпользователя, чтобы установить или удалить этот атрибут:
Для просмотра атрибутов файла используется команда lsattr, как показано ниже:
Теперь попробуйте удалить неизменяемый файл, как от имени обычного пользователя, так и как root.
Как сделать каталог неизменяемым в Linux рекурсивно
Используя флаг -R, вы можете рекурсивно изменять атрибуты каталогов и их содержимого.
Чтобы снова изменить файл, используйте флаг -i, чтобы удалить вышеуказанный атрибут, как показано ниже.
Подробнее о команде chattr вы можете узнать из следующих статей на нашем сайте:
Источник
«Защита от дурака» или как запретить изменение/удаление важных папок
Доброе время суток.
Исторически так сложилось, что для своих мелких проектов держу виртуалку. Однако, так как я не использую ее ресурсы на 100%, решил не жадничать и пустил похоститься несколько друзей. Сайтов не много, деньги за хостинг не беру, поэтому ставить что-то вроде cpanel счел перебором. К тому же я их тех, кто предпочитает настраивать все вручную. Структуру выбрал следующую:
И тут возник вопрос: как запретить пользователю удалять/переименовывать папки в sitename.ru? Если будет отсутствовать папка web, то и apache и nginx выдадут предупреждение, но все-равно загрузятся. Но если удалить/переместит папку logs, то и apache и nginx не запустятся из-за ошибки (по мне довольно странное поведение). Папка hostuser полностью принадлежит данному пользователю и его личной группе (hostuser:hostuser), а это означает, что при желании он сможет удалить любую внутреннюю папку/файл, даже если она будет принадлежать суперпользователю. Так как же запретить удаление/перемещение, чтобы пользователь (случайно или специально) не сломать весь хостинг?
После недолгого гугления решение было найдено. По мимо стандартных разрешений и acl, в файловых системах типа ext2, ext3, ext4 для файла можно выставлять дополнительные атрибуты. Подробней о всех атрибутах прочитать на Wiki, либо man chattr. Нас же интересует атрибут immutable. Данный атрибут для файла или папки может выставить только суперпользователь. Если назначит атрибут immutable на файл, то данный файл нельзя будет изменить или удалить (причем даже суперпользователь это не сможет сделать, пока не уберет данный атрибут). Если назначит атрибут immutable на папку, то данную папку нельзя будет удалить, а так же нельзя будет изменить структуру внутри нее. Тем самым получается, что если нам нужно защитить папку sitename.ru и структуру внутри нее, нам необходимо выполнить простую команду:
Для снятия атрибута необходимо использовать флаг -i.
Если же нужно защитить только одну папку (например, logs), можно поступить следующим образом:
Собственно так можно поставить «защиту от дурака» (даже с правами суперпользователя).
Спасибо за внимание.
Важно понимать, данная статья не об информационной безопасности. Замок на почтовом ящике — это информационная безопасность. Стекло на кнопке пожарной сигнализации — это защита от дурака.
Если создать файл .keep и дать ему атрибут -i, саму папку можно перенести и файл можно перенести. Нельзя удалить сам файл и структуру папок до этого файла.
Если вам требуется более надежный уровень безопасности, используйте атрибут immutable совместно с mount —bind. С помощью этой связки можно настроить защиту от намеренного изменения структуры.
Источник
Как поставить пароль на папку в Linux
Может возникнуть ситуация, когда вам нужно пользоваться своим компьютером вместе с другими людьми, и у вас есть личные файлы или файлы с паролями, которые вы бы не хотели чтобы кто-либо видел.
Конечно, можно спрятать их в надежном, далеком месте где к ним никто не доберется, но этот метод ненадежный, потому что файлы могут быть показаны в результатах поиска. Можно настраивать сложную систему полномочий создавая для всех людей отдельных пользователей в системе. А можно просто поставить пароль на папку Linux.
Как это работает?
В Windows раньше был популярен способ прятать файлы, поместив их в глубокую структуру каталогов. Также популярны различные программы, позволяющие защитить папку паролем Ubuntu.
Нельзя поставить пароль на папку в самом файловом менеджере иначе к ней можно будет получить доступ из другого файлового менеджера или другой файловой системы. Но можно зашифровать файлы в папке и расшифровывать их только тогда, когда нужно. Раньше для таких целей использовалась специальная файловая система — EncFS и программы оболочки для неё, например CryptKeeper или Encfs Gnome Manager, но в 2014 году в этой файловой системе были обнаружены уязвимости, из-за которых она больше не могла считаться полностью безопасной.
Поэтому в сегодняшней статье мы не будем рассматривать старые утилиты, а сосредоточимся на новых, а именно Cryptomator и CryFS. Начнём с Cryptomator.
Пароль на папку в Cryptomator
1. Установка Cryptomator
Для установки необходимо добавить PPA репозиторий в систему:
sudo add-apt-repository ppa:sebastian-stenzel/cryptomator
Затем установите программу:
sudo apt install cryptomator
Запустить программу можно из главного меню:
2. Создание хранилища
В главном окне программы нажмите кнопку Добавить хранилище. В открывшемся окне выберите Создать хранилище:
Затем введите имя хранилища:
Далее, выберите расположение:
И на последнем шаге введите два раза пароль, который вы будете использовать для разблокирования хранилища, фактически, это ваш пароль от секретной папки:
Ключ можно сохранять, а можно не сохранять, а просто помнить пароль. Хранилище готово:
3. Открытие хранилища
Если вы откроете сейчас папку, выбранную для размещения хранилища, то там будут зашифрованные файлы, их нельзя редактировать. Чтобы получить доступ к защищённой папке откройте программу и нажмите кнопку Разблокировка возле нужного хранилища:
Затем введите пароль:
И нажмите кнопку Показать хранилище чтобы получить доступ к вашим файлам:
Вот это и есть ваша папка, защищённая паролем. Сюда можно перемещать файлы, которые можно защитить и здесь же вы их найдёте в следующий раз:
4. Блокировка хранилища
Когда закончите работу с файлами заблокируйте хранилище, чтобы все файлы зашифровались и не были никому доступны. Для этого нажмите кнопку заблокировать на вкладке нужного хранилища:
Готово. Это хранилище может лежать локально или его можно синхронизировать на несколько компьютеров с помощью какого либо облака. А учитывая, что у программы есть Android версия. то и Android можно использовать.
Пароль на папку в CryFS
Если вы предпочитаете использовать консольные утилиты вместо графических, можно воспользоваться CryFS. Это современная шированая файловая система, которая прячет не только содержимое файлов, но и их метаданные, а также размер.
1. Установка CryFS
Установить файловую систему не сложно, она есть в официальных репозиториях. Для этого выполните:
sudo apt install cryfs
2. Создание хранилища
Создайте папку в которой будут находится зашифрованные файлы, например
Затем создайте папку куда будет монтироваться расшированое хранилище:
Затем подключите хранилище командой:
Утилита спросит использовать ли параметры по умолчанию, тут можно соглашаться, а затем надо будет ввести два раза пароль:
После этого ваша папка с паролем готова. Можете поместить в неё свои файлы, например, тестовый файл:
3. Блокировка хранилища
Когда завершите работу с файлами просто заблокируйте хранилище. Для этого выполните команду:
Теперь папка, в которой только что были файлы пуста и для её подключения необходимо снова выполнить те же действия что при создании хранилища и ввести пароль.
Выводы
В этой небольшой статье мы разобрали как поставить пароль на папку в Ubuntu с помощью двух различных утилит. А вы пользуетесь утилитами для защиты информации? Что используете? Напишите в комментариях!
Источник
Команды Linux для работы с файлами
Чтобы быть профессионалом в использовании терминала Linux, нужно научится управлять файлами через терминал. Это чуть ли не основа всего, включая редактирование конфигурационных файлов, сборку программ, администрирование и множество других вещей. Просмотр содержимого папок, переход между папками, создание и удаление файлов — это необходимая база, для удобной работы в терминале.
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
- ls — список файлов в директории;
- cd — переход между директориями;
- rm — удалить файл;
- rmdir — удалить папку;
- mv — переместить файл;
- cp — скопировать файл;
- mkdir — создать папку;
- ln — создать ссылку;
- chmod — изменить права файла;
- touch — создать пустой файл.
А теперь перейдем к подробному рассмотрению всех этих команд.
1. ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:
Вы также можете вернуться в предыдущую рабочую папку:
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
rm -r /home/user/photo/
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
7. mkdir — создать папку
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
ln -s /home/user/Downloads/ /home/user/test/
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
chmod +x script.sh
Чтобы убрать флаг исполняемый используйте опцию -x:
chmod -x script.sh
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Источник