Запретить удаление файлов Linux

Обновлено: 21.11.2024

Как предотвратить удаление файла любым пользователем в Linux?

Невозможно «заблокировать» файлы или запретить их изменение пользователями, имеющими соответствующие разрешения. Пока у пользователя есть права доступа к файловой системе (точнее, права на запись) для удаления файла, он сможет его удалить.

Как запретить пользователям удалять файлы и папки?

Запретить пользователям удалять файлы и папки

  1. На Google Диске откройте библиотеку AODocs, в которой вы указаны как администратор библиотеки.
  2. Нажмите кнопку с изображением шестеренки и выберите Центр безопасности.
  3. Во всплывающем окне Центра безопасности выберите вкладку Безопасность.
  4. Установите флажок Только администраторы могут удалять файлы и папки. Примечания: …
  5. Нажмите "Готово", чтобы сохранить.

Как предотвратить удаление файла любым пользователем?

Вот что вам нужно сделать:

  1. Щелкните правой кнопкой мыши файл, который хотите защитить, и откройте "Свойства".
  2. Перейдите на вкладку "Безопасность" и выберите "Дополнительно".
  3. Теперь нажмите отключить наследование.
  4. Нажмите на пользователя, которому вы хотите запретить доступ к вашему файлу, и перейдите в раздел «Изменить».
  5. В раскрывающемся меню "Тип:" выберите "Запретить" и нажмите "ОК".

Как предотвратить удаление общей папки?

щелкните правой кнопкой мыши папку, которую вы использовали в команде, выберите вкладку «Безопасность», в области «Группа или имя пользователя:» прокрутите или выберите и выделите учетную запись или группу, которые вы использовали в команде, в разделе «Разрешения». для области «Администраторы» вы увидите атрибуты разрешений NTFS для «Разрешить» и «Запретить».

Что такое sticky bit в Linux?

Бит закрепления — это бит разрешения, установленный для файла или каталога, который позволяет только владельцу файла/каталога или привилегированному пользователю удалять или переименовывать файл. Никакой другой пользователь не имеет прав на удаление файла, созданного другим пользователем.

Как дать разрешение на запись, но не чтение файла в Linux?

Затем вы можете использовать setfacl/getfacl для контроля и просмотра разрешений на уровне списка управления доступом. Пример: (Создавайте файлы, после записи они доступны только для чтения, но МОГУТ быть удалены владельцем, но не другими лицами.) Вы можете установить список ACL по умолчанию для каталога, который будет использоваться всеми файлами, созданными в нем.

Как запретить пользователям удалять файлы в общих папках Server 2019?

Щелкните правой кнопкой мыши по этой папке, перейдите в «Свойства» и на вкладке «Безопасность» нажмите «Дополнительно». Затем нажмите «Изменить разрешение», нажмите «Добавить» и введите «все» в поле (если оно уже существует, вы можете его отредактировать). Затем откройте «все» и измените его разрешение по своему усмотрению.

Как запретить перемещение этой папки, но при этом разрешить ее копирование?

Перемещение папки в основном представляет собой комбинацию копирования объекта в другое место и последующего его удаления в исходном местоположении. Если для расширенных разрешений NTFS установлено значение «Запретить удаление» только для папок (но не для вложенных папок и файлов), это должно предотвратить случайное перемещение папок.

Как изменить права доступа к папке?

  1. Войдите на свой компьютер как администратор. …
  2. Щелкните правой кнопкой мыши файл или папку, для которых нужно изменить разрешения, и выберите "Свойства". …
  3. Выберите вкладку "Безопасность". …
  4. Выберите пользователя, которому нужно изменить разрешения, и нажмите "Изменить".
  5. Чтобы добавить нового пользователя или группу, нажмите "Изменить", а затем "Добавить".
  6. Нажмите "Дополнительно", а затем "Найти сейчас".

Как запретить брандмауэру удалять файлы?

  1. Выберите "Параметры Windows" > "Обновление и безопасность" > "Безопасность Windows" > "Защита от вирусов и угроз".
  2. В разделе "Параметры защиты от вирусов и угроз" нажмите "Управление параметрами".
  3. В разделе "Исключения" нажмите "Добавить или удалить исключения".
  4. Нажмите "Добавить исключение" и выберите "Файл" или "Папка".

Как запретить моему компьютеру удалять файлы самостоятельно?

Как запретить Windows 10 автоматически удалять файлы

  1. Откройте приложение "Настройки". Выберите категорию "Система", а затем "Хранилище".
  2. Переместите переключатель «Контроль памяти» в положение «Выкл.», чтобы отключить эту функцию. Когда эта функция отключена, она не будет автоматически удалять файлы для освобождения места на диске.

Как дать разрешение на запись, но не чтение файла?

Это довольно просто.

  1. Щелкните правой кнопкой мыши папку и предоставьте к ней общий доступ, используя «Все — полный доступ» только в качестве РАЗРЕШЕНИЙ НА ОБЩИЙ ДОСТУП, а не NTFS.
  2. Перейдите на вкладку "Безопасность".
  3. Перейти в раздел "Дополнительно".
  4. Нажмите «Изменить разрешения».
  5. Добавьте нужного пользователя, нажав кнопку "Добавить" и введя имя пользователя.

Как создать папку, которую нельзя удалить?

Создание папок, которые нельзя удалить и переименовать

  1. Нажмите "Пуск".
  2. Нажмите «Выполнить». Введите «cmd» без кавычек.
  3. В открывшемся окне командной строки введите имя диска, на котором вы хотите создать папку, в формате : и нажмите Enter. …
  4. Введите эту команду — «md con» или «md lpt1» без кавычек и нажмите Enter.

Почему мой компьютер продолжает удалять программы?

Похоже, что если вы установили несовместимое или неисправное обновление Windows 10, оно удалит или удалит ваши файлы на ПК. Итак, самый простой способ — удалить ошибочные обновления, которые удаляют файлы на вашем компьютере с Windows 10. Вот подробные инструкции по удалению ошибочных обновлений: Шаг 1.

Иногда я не соображаю и случайно нажимаю SHIFT+УДАЛЕНИЕ своих данных. Хуже того, я даже не делаю резервную копию данных перед их удалением. Если вы чем-то похожи на меня, то для вас есть хорошие новости. Я знаю полезную утилиту командной строки под названием «chattr», которая используется для предотвращения случайного удаления или изменения файлов и папок в Linux.

Chattr, сокращение от Change Attribute, применяет/удаляет определенные атрибуты к файлу или папке в вашей системе Linux. Таким образом, никто не может удалить или изменить файлы и папки случайно или намеренно, даже как пользователь root. Звучит полезно, не так ли? Действительно!

Защитите файлы и папки от случайного удаления или изменения в Linux с помощью Chattr

По умолчанию Chattr предустановлен во многих операционных системах Linux. Так что не будем заморачиваться с установкой.

Синтаксис команды chattr по умолчанию:

chattr имеет следующие операторы:

  • Операция "+" добавляет выбранные атрибуты к существующим атрибутам файлов.
  • Операция '-' приводит к их удалению.
  • Операция '=' делает их единственными атрибутами файлов.

Chattr имеет разные атрибуты, а именно - aAcCdDeijsStTu. Каждая буква применяет определенные атрибуты к файлу, как указано ниже.

В этом руководстве мы обсудим использование двух атрибутов, а именно a и i, которые используются для предотвращения удаления файлов и папок.

Защита файлов от случайного удаления в Linux

Позвольте мне создать файл с именем file.txt в моем текущем каталоге.

Теперь я собираюсь применить атрибут " i ", который сделает файл неизменяемым. Это означает - вы не можете удалить, изменить файл, даже если вы являетесь владельцем файла и пользователем root.

Вы можете проверить атрибуты файла с помощью команды:

Пример вывода:

Сделать файлы неизменяемыми с помощью команды chattr в Linux

Теперь попробуйте удалить файл как обычный пользователь или с правами sudo.

Пример вывода:

Попробую с помощью команды sudo:

Пример вывода:

Давайте попробуем добавить содержимое в текстовый файл.

Пример вывода:

Предотвращение случайного удаления файлов в Linux с помощью Chattr

Даже если вы попытаетесь удалить файл из файлового менеджера в режиме графического интерфейса, вы не сможете его удалить.

Запретить удаление файлов в Linux

Как вы заметили в приведенных выше выводах, мы не можем удалить или изменить файл, даже будучи пользователем root.

Чтобы отозвать атрибуты, просто используйте ключ "-i", как показано ниже.

Теперь неизменяемый атрибут удален. Теперь вы можете изменить или удалить файл по своему усмотрению.

Удалить неизменяемые атрибуты файла с помощью chattr

Аналогичным образом вы можете запретить случайное удаление или изменение каталогов, как описано в следующем разделе.

Защита папок от случайного удаления и изменения в Linux

Создайте каталог с именем dir1 и файл с именем file.txt внутри этого каталога.

Теперь сделайте этот каталог и его содержимое (файл.txt) неизменяемыми с помощью команды:

  • -R - сделает dir1 и его содержимое неизменяемыми рекурсивно.
  • +i — делает каталог неизменяемым.

Теперь попробуйте удалить каталог либо как обычный пользователь, либо с помощью пользователя sudo.

Вы получите следующий вывод:

Попробуйте добавить содержимое в файл с помощью команды "echo". Ты сделал это?Конечно, нельзя!

Предотвращение случайного удаления и изменения папок в Linux

Чтобы отозвать атрибуты обратно, запустите:

Теперь вы можете удалить или изменить содержимое этого каталога, как обычно.

Предотвратить случайное удаление файлов и папок, но разрешить операцию добавления в Linux

Теперь мы знаем, как предотвратить случайное удаление и изменение файлов и папок. Далее мы собираемся запретить удаление файлов и папок, но разрешим файл для записи только в режиме добавления. Это означает, что вы не можете редактировать, изменять существующие данные в файле, переименовывать файл и удалять файл. Вы можете открыть файл для записи только в режиме добавления.

Чтобы установить атрибуцию режима добавления для файла/каталога, мы делаем следующее:

Для файлов:

Для каталогов:

Файл/папка с установленным атрибутом 'a' может быть открыт только в режиме добавления для записи.

Добавьте содержимое в файл(ы), чтобы проверить, работает оно или нет.

Проверьте содержимое файла с помощью команды cat:

Пример вывода:

Разрешить операцию добавления в Linux с помощью команды chattr

Как видите, мы можем добавлять содержимое. Это означает, что мы можем изменять файлы и папки.

Давайте попробуем удалить файл или папку сейчас.

Вывод:

Попробуем удалить папку:

Или попробуйте с помощью sudo:

Пример вывода:

Предотвратить случайное удаление файлов и папок, но разрешить операцию добавления в Linux

Чтобы удалить атрибуты, выполните следующие команды:

Для файлов:

Для каталогов:

Теперь вы можете удалять или изменять файлы и папки как обычно.

Для получения дополнительной информации см. справочные страницы.

Подведение итогов

Резервное копирование и защита данных — одна из основных задач системного администратора Linux. На рынке доступно множество бесплатных и коммерческих программ для защиты данных. К счастью, у нас есть этот встроенный инструмент, который помогает защитить данные от случайного удаления или модификации. Chattr можно использовать как дополнительный инструмент для защиты важных системных файлов и данных в вашей системе Linux.

Я хочу сделать файл заблокированным от удаления, но по-прежнему доступным для записи. Как мне это сделать?

Этот файл представляет собой том Truecrypt в виде файла в общей сетевой папке NAS SMB, поэтому я не хочу случайно удалить его.

@soandos - Боюсь, я не согласен. Потому что запись в него нулей все равно означает, что файл существует, но заполнен нулями. Действительно, в Linux есть команды для создания «разреженного» файла, полного нулей.

6 ответов 6

  1. Запретить удаление файла.
  2. Удалить или запретить разрешение «Удалить дочерние элементы» для родительского каталога.

Для Unix (включая OS X):

  1. Удалить разрешение "Запись" для родительского каталога.

Обратите внимание, что это только предотвратит удаление (удаление) файла, но ничего не сделает против случайного усечения или перезаписи мусором. Если файл доступен для записи, вы можете записать в него что угодно, и точка.

Кроме того, права доступа к файлам почти невозможно перевести между операционными системами. Если NAS работает под управлением Linux и вы пытаетесь установить разрешения из Windows, конечный результат может отличаться от ожидаемого.

Думаю, это лучший ответ, который я получу. +1 и спасибо. Да, NAS — это Lacie 2big с версией Linux на ARM.

На самом деле вам не нужно запрещать удаление, просто удалите Удалить из существующих записей управления доступом (ACE). (Запрещение ACE усложняет ситуацию, что, как правило, не является хорошим курсом в долгосрочной перспективе.)

@Richard: Насколько мне известно, удаление требует полного отключения наследования ACL для этого файла, что в конечном итоге делает его еще более сложным.

Я согласен с Гравити. Отказать в разрешении на удаление — это правильный путь. Если разрешение общего доступа настроено на изменение, то запрет по-прежнему будет блокировать удаление, а если оставить его пустым, удаление будет разрешено.

В Linux вы можете создать жесткую ссылку на него.Затем вы можете написать ему и «удалить» его, но вы будете удалять только ссылку в своем каталоге. Другая жесткая ссылка по-прежнему будет указывать на содержимое файла, поэтому он все равно не будет удален.

В мире Unix вы не "удаляете" файлы. Вы просто уменьшаете количество жестких ссылок на него. Когда на него больше ничего не указывает, пространство считается свободным и может быть использовано…

Хорошая идея. Не знаю, может ли @Rob создавать жесткие ссылки на своем NAS, но если он может, то это очень умное решение.

+1 Я могу добавить это вместе с принятым ответом, если это возможно. или отдельно, если нет. +1 за нестандартное мышление, как сказано. Однако рассматриваемый общий ресурс Linux - это диск NAS, не уверен, какие средства консоли доступны, это встроенная или полувстроенная форма Linux. Тем не менее, +1, так как это может помочь другим людям, у которых есть обычный рабочий стол или компьютер с Linux, выступающий в качестве общего ресурса.

Резервные копии. Вы не можете реально защитить доступный для записи файл от повреждения, даже если можете от удаления. Ежедневно создавайте резервные копии.

+1 CarlF и +1 RBerteig. Полностью согласен. Резервные копии всех файлов также сохраняются на оптических носителях (DVD-R,+R,+R DL и Blu-ray 25 ГБ и DL 50 ГБ). Я также могу подумать о втором жестком диске.

Должен добавить, что у меня есть резервные копии файлов внутри тома truecrypt, который является файлом-контейнером. Не сам том truecrypt.

В дополнение к предыдущим ответам я хотел бы взглянуть на selinux. Там вы можете задать довольно детальные ограничения.

В файловой системе cow, такой как btrfs, вы можете добиться этого, используя подтомы + моментальные снимки или cp с параметром --reflink=always. Это эффективно приведет к созданию любого количества файлов, которые будут занимать столько же места, сколько один + несколько накладные расходы (но без безумного количества копий или снимков, особенно в сочетании с крошечными размерами файлов это не должно быть заметно), пока они не будут изменены, и в этом случае только те части, которые были изменены, хранятся отдельно, а остальные все еще используются совместно. Затем установите разрешения для каждого отдельно (для достижения того, что вы хотите, просто регулярно делайте снимок или копию с разрешениями только для чтения (и, при желании, монтируйте его ро или не все, если это снимок, а если это файл, используйте chattr +i (пользователи могут не записывайте и не изменяйте файл, даже если у вас есть права на запись) на одной копии, если вы параноик).

В «стандартной» UNIX невозможно защитить отдельный файл от удаления, если каталог доступен для записи. Интуитивно можно было бы ожидать, что снятие защиты w с битов режима с помощью «chmod» должно защитить от удаления, но ЭТО НЕ СЛУЧАЙ. Точно так же в AFS вы не можете защитить отдельные файлы от удаления, потому что записи ACL (отсутствующие или запрещающие соответствующее разрешение 'd') применяются только к каталогу в целом.

Есть некоторые важные файлы, которые я могу случайно удалить (если не буду осторожен), и мне нужно убедиться, что эти файлы нельзя удалить или переместить. Можно ли установить права доступа к файлам, чтобы я не мог удалять или перемещать определенные файлы? Кроме того, возможно ли предотвратить перемещение или удаление файлов пользователями без полномочий root?

4 ответа 4

Также: sudo chattr +i — хороший трюк. Это делает файл неизменяемым.

Также обратите внимание, что даже root не сможет удалить файл, пока не вернется к -i. Это не очень хорошо при администрировании или обслуживании диска, если вы пытаетесь переместить целые каталоги как root, и у вас есть много файлов +i в них, но это надежная защита от случайного удаления! :)

Вы оба имеете право, но пользователь попросил решение для предотвращения случайного удаления файла. ;) Я предполагаю, что он использует установку по умолчанию (ext3/ext4).

@Frantique - безусловно, это сработает! (я поставил +1). Я только сделал примечание, так как ОП не очень хорошо разбирается в разрешениях :), и это сработает слишком хорошо, так как он, возможно, не сможет удалить файл позже и не будет знать, почему, если он никогда этого не видел!

Вам нужно сделать это только в вашем домашнем каталоге, так как системные файлы в /etc, /var или /usr уже настроены так, как вы хотите по умолчанию:

Вы можете удалить разрешение на запись файла для всех (пользователь-владелец, группа и другие). Таким образом, файл будет доступен для чтения вами (или владельцем файла) и не будет доступен для записи (или удаления/перемещения) (примечания: а также не редактируется)

Через командную строку:

chmod -w имя файла

для каталогов (рекурсивно ко всем файлам внутри): chmod -R -w каталог

Наблюдения: вам нужно использовать sudo для применения этих команд, только если вы не являетесь владельцем файла.

Через графический интерфейс Nautilus:

Щелкните файл правой кнопкой мыши и перейдите к разрешениям для настройки.

Вы можете увидеть более подробное объяснение разрешений в справке Ubuntu

Можно ли запретить перемещение или удаление файла, но разрешить изменение его содержимого?

chmod 000 (как root или sudo) предотвратит любое изменение от пользователя без полномочий root.

Можно ли это сделать с помощью параметра контекстного меню для файла (вместо использования командной строки?)

Применяется ли это как к папкам, так и к файлам, или для папок необходимо использовать другую команду?

<р>1. Хм, да, из nautilus, щелкните файл правой кнопкой мыши и установите права доступа :) 2. «В системе Linux, как и в UNIX, нет разницы между файлом и каталогом, поскольку каталог — это просто файл, содержащий имена других файлы."

использование chmod 000 предотвратит любые действия с файлом любым пользователем без полномочий root, даже чтение. Не уверен, что это то, что вам нужно.

Изменить разрешение на чтение и запись собственных файлов в вашей /home папке, чтобы только для чтения для владельца, группы и других:

  1. Щелкните файл правой кнопкой мыши и выберите "Свойства". Для нескольких файлов в одной папке выберите файлы, удерживая нажатой клавишу Ctrl.
  2. Перейти на вкладку "Разрешения".
  3. Изменить разрешение для владельца только на чтение.
  4. Изменить разрешение для группы только на чтение.
  5. Изменить разрешение для других только на чтение.

Это будет работать, но нет необходимости менять владельца на root, чтобы делать то, что нужно OP, поскольку этот вопрос относится только к его домашнему каталогу, поскольку системные файлы в /etc, /var/или /usr уже установлены так, как он хочет по умолчанию. Кроме того, чтение другим пользователям сделает файл доступным для чтения для всех пользователей. tbh это своего рода убийство использования системы разрешений: файл будет доступен всем или только руту (больше никаких разрешений пользователя). В любом случае многие файлы безопасности, такие как каталоги .ssh или каталоги конфигурации gnome, будут иметь проблемы с владельцем, являющимся пользователем root, а не пользователем.

Читайте также: