LINUX.ORG.RU

Как защитить директории и файлы пользователя от удаления пользователем и если это возможно, рутом?

 ,


0

2

Это тема не про бекапы, кто хочет поговорить про бекапы воспользуйтесь поиском.

Вопрос: как защитить некоторые директории и файлы пользователя внутри домашней директории пользователя от удаления этим же пользователем и, если это возможно, рутом?

На стекофервлове и прочих местах есть некоторые советы, но они либо сводятся к защите хомяка как такового в целом, либо вот такой вариант:

~# chattr +i directory

Но не устраивает в этом варианте то, что нельзя удалить файлы внутри этой директории, нельзя их изменить, а также симлинк не создашь.

Что мне нужно, есть домашняя директория:

  • Documents
  • Downloads
  • Pictures
  • Templates
  • .vimrc
  • .bashrc

Мне нужно защитить от удаления Documents и Downloads, а также два файла .vimrc и .bashrc, но чтобы я мог делать обычные дела внутри этих директорий и файлов.

Как это сделать?

Спасибо.



Последнее исправление: slon (всего исправлений: 2)

нельзя удалить файлы внутри этой директории

но можно внутри поддиректорий!

$ sudo chattr +i aa/
$ touch aa/222
touch: cannot touch ‘aa/222’: Permission denied
$ touch aa/bb/222

Т.е. делай Documents/work/ и ок =)

Deleted
()

в zfs есть delete и delete_child acl
никогда не пользовался

system-root ★★★★★
()

защитить ... от удаления

не устраивает то, что нельзя удалить файлы

Как это совмещается?

По делу: ещё есть chattr +a. Обычных дел можно делать больше, но всё равно не все. А ещё можно unionfs-ы на каталоги и symlink-и внутрь оных для отдельных файлов, будет ближе всего к цели, но нужно куда-то встроить переинициализацию всего этого иногда.

DonkeyHot ★★★★★
()

Сделать отдельную директорию и накидать туда хардлинков. От стирания не спасет, конечно, но восстановить будет легко.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от DonkeyHot

Как это совмещается?

Мне нужно защитить только директории сами, а не файлы внутри, там нужен дефолт.

А ещё можно unionfs-ы на каталоги и symlink-и внутрь оных для отдельных файлов, будет ближе всего к цели, но нужно куда-то встроить переинициализацию всего этого иногда.

надеюсь есть более простое решение.

slon
() автор топика

Костыль конечно, но можно так. Примонтировать раздел read only с директорией в подкаталог в домашнем каталоге пользователя. А если нужно что-то менять, то перемонтировать вручную в режиме read-write.

rumgot ★★★★★
()

Совершенно непонятен use case. Директория — это просто файл, содержащий записи о других файлах. Если ты хочешь сохранить именно его, то иммутабельным/append-only следует делать родительскую директорию!

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

Если ты хочешь сохранить именно его, то иммутабельным/append-only следует делать родительскую директорию!

Я специально подчеркнул в топике курсивом слово «некоторые», этимология этого слова — «не все».

Если мы сделаем хомяк root:root, то действительно не сможем удалить все без исключения директории и файлы в хомяке, хотя права на них останутся пользовательскими, но, во-первых, мне не нужно защитить все, а лишь некоторые, а во-вторых, если мы попробуем удалить такую директорию, то хотя сама она не удалится, но содержание внутри неё таки потрется.

Вот и получается, что ничего не получается.

slon
() автор топика
Ответ на: комментарий от WARNING

Т.е. ты хочешь запретить себе делать $ rm ~/.bashrc Но разрешить $ echo " > ~/.bashrc Смысл сего действа-то?

Смысл сего действа в том, чтобы не удалить некоторые директории, когда оператор МПЭВМ во время операционного времени пребывает в граничных состояниях, что странного в том, чтобы включить «защиту от дурака»?

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

slon
() автор топика
Ответ на: комментарий от slon

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

WARNING ★★★★
()
Ответ на: комментарий от h578b1bde

На время пребывания оператора МПЭВМ в граничных состояниях рекомендую пристёгивать оператора наручниками к батарее

Fixed. Это реально действует, кстати :-)

Deleted
()

Завязать не пробовал?

slon
() автор топика

Создай бэкап и скрипт, который бы при необходимости разворачивал бы это бэкап.

Deleted
()

sticky bit. но с ванильным ядром на директории оно работает не так как хотелось бы, т.е. если поставить его на директорию, то при попытке её удалить она не удалится, а файлы внутри неё удалятся.
но на федоре, точнее на open xange у меня оно работало так как надо, видимо там стоял какой-то патч

teod0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.