|
|
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Моя программа открывает файл и записывает в него данные. Можно ли сделать так, чтобы пока файл открыт моей программой пользователь (или другой процесс) не мог ни удалить ни изменить файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 12:53 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Sandro_KМоя программа открывает файл и записывает в него данные. Можно ли сделать так, чтобы пока файл открыт моей программой пользователь (или другой процесс) не мог ни удалить ни изменить файл. А ты сам пробовал удалять файл, пока идёт в него запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 13:09 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Да пробовал. Файл отлично удаляется, и через некоторое время прога вылетает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 13:13 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
думаю, это можно решить при открытии установкой флагов разделяемого доступа, на крайняк – лочь файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 13:23 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Sandro_KДа пробовал. Файл отлично удаляется, и через некоторое время прога вылетает. Всё дело в функции, которую ты используешь для открытия файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 13:36 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Вообще-то странно пока файл открыт он не может быть удален. Реальное удаление файла ядром в таком случае происходит при его закрытии/завершении процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 13:42 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
blindedВообще-то странно пока файл открыт он не может быть удален. Реальное удаление файла ядром в таком случае происходит при его закрытии/завершении процесса. Ошибка у меня возникала по другой причине, но дела это не меняет. Если я удаляю файл пока он открыт в программе, то физически кажется он не удаляется, запись в него продолжается, свободное место на диске уменьшается, но обратиться к файлу пользователю уже никак нельзя, (в файловой системе его уже нет). Программа нормально завершает свою работу, нормально закрывает файл, после этого свободное место на диске возвращается к первоначальному (как я понимаю файл удаляется физически). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 13:58 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
maXmoдумаю, это можно решить при открытии установкой флагов разделяемого доступа, на крайняк – лочь файл. Как залочить файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 14:03 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
вроде как в никсе если создать ссылку (по UIN) то файл не удяляется, а удяляется только ссылка, на которую нажали DELETE. т.е. сам файл остается, но ссылку удалили. только придеться самостоятельно создавать доп. ссылку, а потом проверять наличие первой. или количество ссылок на файл. аффтопитезь: объект либо именован, либо не существует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 14:06 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
В общем файл удаляется физически тогда когда удаляется последняя ссылка на него. В документации к функции close написано: if the descriptor was the last reference to a file which has been removed using unlink(2) the file is deleted Aklinвроде как в никсе если создать ссылку (по UIN) то файл не удяляется, а удяляется только ссылка, на которую нажали DELETE. т.е. сам файл остается, но ссылку удалили. только придеться самостоятельно создавать доп. ссылку, а потом проверять наличие первой. или количество ссылок на файл. Это не полностью решает проблему, просто теперь нужно удалить 2 ссылки на файл. Можно ли как-то жесткую создать ссылку на открытый файл по его дескриптору? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 14:43 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Sandro_KВ общем файл удаляется физически тогда когда удаляется последняя ссылка на него. В документации к функции close написано: if the descriptor was the last reference to a file which has been removed using unlink(2) the file is deleted Aklinвроде как в никсе если создать ссылку (по UIN) то файл не удяляется, а удяляется только ссылка, на которую нажали DELETE. т.е. сам файл остается, но ссылку удалили. только придеться самостоятельно создавать доп. ссылку, а потом проверять наличие первой. или количество ссылок на файл. Это не полностью решает проблему, просто теперь нужно удалить 2 ссылки на файл. Можно ли как-то жесткую создать ссылку на открытый файл по его дескриптору? создать временную жесткую ссылку и работать с ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 14:50 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Sandro_KМожно ли как-то жесткую создать ссылку на открытый файл по его дескриптору? Для того чтобы посторонний пользователь или процесс не мог удалять и изменять файл впринципе, существуют соответсвтующие атрибуты. Сделай так, чтобы при создании файла он попадал либо в home-каталог задачи с наследованием атрибутов, либо создавай его в другом каталоге с явной установкой rwx для user, group и oth ers. Если ваша технология допускает конкурентный доступ к файлу (так бывает в базах данных), вы можете использоват специальные виды блокировок для фрагмента файла (блочный доступ) или еще лучше - для всего файла. Посмотри в справочнике описание функций fcntl() и flock(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:19 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
mayton Sandro_KМожно ли как-то жесткую создать ссылку на открытый файл по его дескриптору? Если ваша технология допускает конкурентный доступ к файлу (так бывает в базах данных), вы можете использоват специальные виды блокировок для фрагмента файла (блочный доступ) или еще лучше - для всего файла. Посмотри в справочнике описание функций fcntl() и flock(). Все эти замки - дело сугубо добровольное. Т. е. ежели ты проверишь блокировку - все будет ок, а если проманкируешь или просто перенапрвишь вывод от программы в файл ил утилиткой попльзуешься - все на смарку Unix не защищен от дурака ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:25 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Хы, пишут такое: wikiThis combination of inode usage and non-mandatory locking leads to great flexibility in accessing files from multiple or many processes. On the other hand, the cooperative locking approach can lead to problems when a process writes to a file without obeying file locks set by other processes. For this reason, some UNIX and UNIX-like operating systems support mandatory locking as well. manThere are also locks.txt and mandatory.txt in /usr/src/linux/Documentation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:28 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Дураки всегда и везде есть. Главное, нам от этого не стать параноиками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:28 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
blindedUnix не защищен от дуракаа называют защищённой. А мне говорили, на линухе можно сделать локи как на винде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:35 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
Мы не знаем от чего автор пытается защитится. Толи от себя (другой своей программы) толи от внешнего воздействия. Если от первого задачка решаема, если от 2-го - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:37 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
maXmo blindedUnix не защищен от дуракаа называют защищённой. А мне говорили, на линухе можно сделать локи как на винде. На сараях тоже пишут, а там дрова ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:40 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
во чего нашёл :) http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:41 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
maXmo blindedUnix не защищен от дуракаа называют защищённой. А мне говорили, на линухе можно сделать локи как на винде. если не ошибаюсь - для этого надо использовать мандаторные блокировки файловая система должна быть смонтирована как -o mand ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:41 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
ну собсна гугол рулит мощным рулем http://slackware.osuosl.org/slackware-3.3/docs/linux-2.0.30/mandatory.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:51 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
тот текст выглядит жутко %) --null--если не ошибаюсь - для этого надо использовать мандаторные блокировки файловая система должна быть смонтирована как -o mandи всякий узер имеет право маунтить линуховую фс саму в себя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:54 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
--null-- maXmo blindedUnix не защищен от дуракаа называют защищённой. А мне говорили, на линухе можно сделать локи как на винде. если не ошибаюсь - для этого надо использовать мандаторные блокировки файловая система должна быть смонтирована как -o mand Мы такими темпами скоро дойдём до требования поднять виртуальные машины и кластерные ФС. Задачка ведь тривиальная! Возьмите любой софт (это к автору топика), который пишет свои логи и посмотрите, как он реализован. Играть-же в кошки-мышки с дураком на правах рута - изначально неверная постановка. Её даже не стоит обсуждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:58 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
почему саму в себя? Просто такое допускается на файловой системе, смонтированной с этой опцией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 15:58 |
|
||
|
Запретить изменение и удаление файла. Linux
|
|||
|---|---|---|---|
|
#18+
maXmoну собсна гугол рулит мощным рулем http://slackware.osuosl.org/slackware-3.3/docs/linux-2.0.30/mandatory.txt Класс только это не наш случай. Вызова unlink в списке нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 16:08 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34447736&tid=2029066]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 562ms |

| 0 / 0 |
