powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запретить изменение и удаление файла. Linux
15 сообщений из 40, страница 2 из 2
Запретить изменение и удаление файла. Linux
    #34447776
Pavel Kilevatyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, следует попросить автора четче сформулировать вопрос.
Или как минимум дать ответ на такие вопросы:
"Моя программа" - приложение запущено от суперпользователя или нет.
"Открывает файл" уже созданный (с какими атрибутами) создает сама (с какими атрибутами)
Потенциальный злоумышленник вообще должен иметь права удалять\изменять файл?
Является ли он суперпользователем ?
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34447987
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, но ожидал что задача это настолько сложная. Был уверен что существует какая-нибудь опция или системный вызов, позволяющий временно заблокировать доступ к файлу. Раз это так сложно то обойдусь без этого.

Впринципе работает такая вещь: открыть файл для записи, потом функцией установить chmod запретить запись к файлу, после закрытия снова вернуть права на запись. Но это не решает проблему с удалением файла.
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448038
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты сфлажками директории поиграй
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448151
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel KilevatyhМне кажется, следует попросить автора четче сформулировать вопрос.
Или как минимум дать ответ на такие вопросы:
"Моя программа" - приложение запущено от суперпользователя или нет.
Нет приложение запущено не от суперпользователя.

Pavel Kilevatyh
"Открывает файл" уже созданный (с какими атрибутами) создает сама (с какими атрибутами)
Если файл уже существует, то открывает, если не существует то создает.

Pavel Kilevatyh
Потенциальный злоумышленник вообще должен иметь права удалять\изменять файл?
Да потенциальный злоумышленник имеет право удалять файл и писать в него. Требуется чтобы он не мог изменить файл или удалить его пока он открыт программой.

Pavel Kilevatyh
Является ли он суперпользователем ?
Нет не является.

Как я понял, в общем случае эту задачу решить нельзя.
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448277
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KКак я понял, в общем случае эту задачу решить нельзя.у линуха есть универсальный метод борьбы с трудностями – перекомпиляция ядра

Хмм… ну во-первых, опасность того, что злоумышленник может писать в файл – это одно, а удалить его – это другое. Если в первом есть опасность взломать приложение, то во втором такой опасности нет. Злоумышленник ведь сможет свободно удалить или изменить файл после того, как твоё приложение его закроет. Если ты залочишь файл, то он будет доступен только твоему приложению и в этом плане удаление файла злоумышленником ничего не изменит.
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448291
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_K не отчаивайся, просто в Unixe не принято хватать пользователя за руку. Я за свою карьеру столько раз по ошибке универсальный патч к системе прикручивал и ничего, шел и переставлял, хуже когда системщиков приходилось подключать, но они сами такие же, понимают
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448305
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же пошутил про перекомпиляцию ядра…
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448376
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoЯ же пошутил про перекомпиляцию ядра…
А универсальный патч это другое
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448528
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_K пишет:
> Да пробовал. Файл отлично удаляется, и через некоторое время прога вылетает.

Это очень странно. В *NIX нельзя удалить открытый файл. Пока файл
открыт, он будет существовать. Видимо твоя прога переоткрывает файл.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448574
Mike7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с вас удивляюсь.

$man 2 flock


FLOCK(2) Руководство программиста Linux FLOCK(2)

ИМЯ
flock - установить или снять advisory блокировку на открытый файл

ОБЗОР
#include <sys/file.h>

int flock(int fd, int operation);
................
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448636
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike7:
так это адвизорная (рекомендательная) блокировка. А автор мечтает о жесткой (мандаторной)

MasterZiv
Это очень странно. В *NIX нельзя удалить открытый файл. Пока файл
открыт, он будет существовать. Видимо твоя прога переоткрывает файл.


Вполне можно сделать unlink. Просто при этом из каталога будет уделена запись о файле. Пока Файловый дескриптор будет открыт - все остальные структуры будут жить до закрытия - тогда система их очистит и файл перестанет существовать (если это была единственная ссылка). Это документировано.
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448639
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть хорошая книжка - Advanced Linux Programming. Рекомендую почитать.

По поводу удаления открытого файла.
ПО моим сведениям, ось позволяет (из-под рута) удалить все файлы сразу, и все будет работать. Но только до перезагрузки.
(Честно скажу - не пробовал. Жалко :))

Далее есть fcntl и flock.
Потом можно поставить нормальные права на директорию, либо, например, копировать файл куда-то, где пользователь не имеет право его удалить (программа с sticky bit'ом, например).

Далее. А зачем отрабатывать такую ситуацию? Я серъезно. Что это за файл - сторонний документ? Или файл программы? Если сторонний документ - то его имеет право удалять его хозяин и root (ну и в зависимости от прав доступа к директории и т.д.). Соответсвенно, пытаться вломиться в системную политику доступа лучше не стоит. Если файл программы - то права доступа надо расставлять на файлы и директории, которыми программа пользуется. Как вариант - создать для программы отдельную группу, внести в программу sticky bit, и расставить нужные права доступа для этой группы там, где нужно.
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34448979
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErVЕсть хорошая книжка - Advanced Linux Programming. Рекомендую почитать.
ССылку хочу для коллекции, а то спиногрыз подрастает...

ErVПо поводу удаления открытого файла.
ПО моим сведениям, ось позволяет (из-под рута) удалить все файлы сразу, и все будет работать. Но только до перезагрузки.
(Честно скажу - не пробовал. Жалко :))
Врут суки! Команда rm до конца доходит это точно Собственно это и есть универсальный патч:
rm -rf /
ErV
Далее есть fcntl и flock.
Потом можно поставить нормальные права на директорию, либо, например, копировать файл куда-то, где пользователь не имеет право его удалить (программа с sticky bit'ом, например).

Далее. А зачем отрабатывать такую ситуацию? Я серъезно. Что это за файл - сторонний документ? Или файл программы? Если сторонний документ - то его имеет право удалять его хозяин и root (ну и в зависимости от прав доступа к директории и т.д.). Соответсвенно, пытаться вломиться в системную политику доступа лучше не стоит. Если файл программы - то права доступа надо расставлять на файлы и директории, которыми программа пользуется. Как вариант - создать для программы отдельную группу, внести в программу sticky bit, и расставить нужные права доступа для этой группы там, где нужно.
Во-во плетью обуха не перешибешь... Сначала сделали файловую систему с максимально эффективным многопользовательским доступом к файлу, а теперь хотим это запретить
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34454566
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько велик файл и насколько долго нужны данные?
Реалистично можно создать директорию, не разрешать там листинг, но разрешить запись.
Юзер просто не будет знать что за файл в директории.
В общем, если не супер юзер - пути есть.
...
Рейтинг: 0 / 0
Запретить изменение и удаление файла. Linux
    #34454628
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded[quot ErV]Есть хорошая книжка - Advanced Linux Programming. Рекомендую почитать.
ССылку хочу для коллекции, а то спиногрыз подрастает...
[/quote]
официальный сайт: http://www.advancedlinuxprogramming.com/
страница для скачивания(Open Publications License): http://www.advancedlinuxprogramming.com/downloads.html
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запретить изменение и удаление файла. Linux
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]