mogul82 пишет:2 = write (право на запись)
не на запись, а на модификацию.
Неужели? Так там бы была буковка m, а не w. :lol:
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Разговоры о Linux и не только → Право на запись - модификацию
Чтобы отправить ответ, вы должны войти или зарегистрироваться
mogul82 пишет:2 = write (право на запись)
не на запись, а на модификацию.
Неужели? Так там бы была буковка m, а не w. :lol:
Неужели? Так там бы была буковка m, а не w.
ну мало-ли. объясните мне лучше назначение команд "кошка", и "чай". Про команду "ещё" не забудьте.
Поведайте нам также об этимологии слов mount и grep.
Если серьёзно, то в английском языке слово write имеет не совсем то значение. А в данном случае даже дело не в слове, а в режиме "w", с которым открывается файл. В этом режиме OS сразу после открытия уничтожает всё старое содержимое файлов, а для добавления информации служит режим "a". Вот только право всего одно и для добавления и для перезаписи. Потому я называю его "модификацией", что-бы подчеркнуть, что право действует не только на запись.
ну мало-ли. объясните мне лучше назначение команд "кошка", и "чай".
Понятия не имею, не играл в wow.
Про команду "ещё" не забудьте.
А там и такая есть?
Поведайте нам также об этимологии слов mount и grep.
Уж лучше Вы к нам. 
Если серьёзно, то в английском языке слово write имеет не совсем то значение. А в данном случае даже дело не в слове, а в режиме "w", с которым открывается файл. В этом режиме OS сразу после открытия уничтожает всё старое содержимое файлов, а для добавления информации служит режим "a". Вот только право всего одно и для добавления и для перезаписи. Потому я называю его "модификацией", что-бы подчеркнуть, что право действует не только на запись.
Да, drBatty, с такими претензиями нужно обращаться к составителям стандартов, а не объяснять тут на пальцах почему там должна быть буковка "m".
Понятия не имею, не играл в wow.
А там и такая есть?
Уж лучше Вы к нам
куда "к вам"? в венду что-ли? все эти команды не из WoW, а из UNIX'а.
с такими претензиями нужно обращаться к составителям стандартов, а не объяснять тут на пальцах почему там должна быть буковка "m".
там должна быть буква w, которую следует понимать как "модификация". wink
все эти команды не из WoW, а из UNIX'а.
Вау. Тогда уж, не из UNIX'а, а из ЮНИКС'а. 
там должна быть буква w, которую следует понимать как "модификация". wink
Какое-то слишком перевернутое понимание.
Какое-то слишком перевернутое понимание.
со временем вы поймёте.
snatch пишет:Какое-то слишком перевернутое понимание.
со временем вы поймёте.
Ваше понимание в данном вопросе мне не интересно.
Ваше понимание в данном вопросе мне не интересно.
взаимно
[offtop]
а буква "а" Мне казалось служит только для добавления в конец файла без возможноcти чтения/fseek/rewind? для модификации вроде "r+" используется? или не про это тема?
а буква "а" Мне казалось служит только для добавления в конец файла без возможноcти чтения/fseek/rewind? для модификации вроде "r+" используется? или не про это тема?
a, w, и r это режимы. добавления, перезаписи, и чтения.
есть ещё a+, w+, r+ это тоже самое но с возможностью чтения (а последний с возможностью записи).
подробнее в man fopen.
Но есть и атрибут +a, AppendOnly. это уже атрибут файла, как и права. хранится в инодах, установить может только root. Если этот атрибут установлен, то к файлу можно только добавлять (и читать, если +r). Если установлен для каталога, то в таком каталоге можно только создавать файлы, и модифицировать существующие. Удалять и переименовывать файлы нельзя. Устанавливается командой chattr +a.
а буква "а" Мне казалось служит только для добавления в конец файла без возможноcти чтения/fseek/rewind? для модификации вроде "r+" используется? или не про это тема?
Тут уже не понятно откуда тема растет.
А ты говоришь про опции открытия файлов в с++ например, а мы про расшифровку прав файлов (chmod) например.
Тут уже не понятно откуда тема растет.
А ты говоришь про опции открытия файлов в с++ например, а мы про расшифровку прав файлов (chmod) например.
я в этой теме и про то и про другое писал smile
А давайте спустимся на уровень системных вызовов 
По отношению к файлу есть системный вызов write(2)
Системного вызова modification нет.
По отношению к файлу есть системный вызов write(2)
Системного вызова modification нет.
да. вот только действие write(2) зависит от действия open(2), как вы файл откроете, так и (не)будет работать write(2). А открыть вы можете файл over9000 способами. Причём права файлов могу помешать работе write(2), а могут и не помешать - зависит от режима.
И вообще, понятие "запись" слишком размыто - я могу создать файл, причём так его создать, что туда "запись" будет запрещена. Это как? Я могу удалить файл, причём право "записи" мне не нужно. Всё потому, что при удалении я не модифицирую файл, я его просто уничтожаю.
И ещё: где временной штамп записи?
да, надоели.
вот вам запись в файл защищённый от записи:
А открыть вы можете файл over9000 способами.
Опять же есть флаги O_WRONLY и O_RDWR.
Что бы модифицировать содержимое файла, надо в него по любому записать :lol:
или это "не запись"?
Запись, запись 
Мы все в курсе, что :
1) права файла учитываются только в момент открытия
2) при чтении/записи учитывается режим дескриптора открытого файла
3) про создании файла creat(t.txt,000) ( что аналогично open(t.txt,O_CREAT|O_WRONLY|O_TRUNC,000) ) файл будет открыт на запись (режим дескриптора), хотя права самого файла будут 000 ( и эти права будут использоваться только попытке заново открыть файл).
короче w - write - запись
Я могу удалить файл, причём право "записи" мне не нужно.
нужно право на запись и исполнения на каталог 
Будем придираться. В файл не писал а читал с него.
O_TRUNC - способ модифицировать файл, без выполнения write(2), но требуется права w на файле :o
Что бы модифицировать содержимое файла, надо в него по любому записать
нужно-нужно. Но что-бы записать, необязательно модифицировать содержимое файла. Вот как в моём примере - я записал туда 5 байт, но при этом ничего не модифицировал. Потому запись успешная. При попытке модификации - получу по рукам.
нужно право на запись и исполнения на каталог
а причём тут каталог?
Уничтожение - тоже запись, ибо блоки занятые файлом "освобождаются", и будут перезаписаны. И не важно, что не сразу. Т.е. при уничтожении файл стирается (пусть и не сразу), и тем не менее - не модифицируется: в общем случае невозможно поменять скажем все буквы t на Z внутри файла, т.к. файл может быть частично (или полностью) уничтожен. Модификация хоть и происходит, но не нами, и мы никак не можем на это повлиять (почему, кстати, я всегда храню ценные данные на отдельном разделе - в общий раздел сама система может записать что угодно, или я нечаянно. На отдельном разделе остаются даже удалённые данные).
А каталог тут совсем не при делах - там лежит имя файла, а имя файла как известно к самому файлу не относится. У файла может быть сколько угодно имён, в т.ч. и не быть вовсе.
Будем придираться. В файл не писал а читал с него.
я читал t.txt, а вот в t2.txt я писал - очевидно, что на тех блоках небыло ТЕХ пяти байт.
O_TRUNC - способ модифицировать файл, без выполнения write(2), но требуется права w на файле
о чём я и говорю - write тут не причём, и буквочка w на самом деле имеет ненамного больше отношение к записи, чем моя кошка к команде cat (или вы мне будете доказывать, что cat имеет отношение к кошкам? так и право w не имеет прямого отношения к записи).
Короче: то, что есть право w, вовсе не говорит, что это право идентично праву записи, о чём я и писал изначально. Причём в данном случае это важно: злоумышленник может переделать наш файл, если мы об этом хоть раз позабудем.
При попытке модификации - получу по рукам.
Нет. Получите по рукам при попытке открыть на запись
До попытки записать(модифицировать) дело не дойдет.
чем моя кошка к команде cat
cat - сокращение от catenate
а w от write
Уничтожение - тоже запись
не согласен.
не согласен.
а... надоело спорить. пусть будет ОСОБАЯ запись. так пойдёт?
3.1.4. Имя пользователя не должно содержать адреса электронной почты или веб-сайтов.
--- anonymous.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 149.227/156.852/164.611/6.297 ms
Системного вызова modification нет.
http://linuxforum.ru/viewtopic.php?pid=111956#p111956
надо обладать правом модификации содержимого это родительской "папки"
Вы же уже употребляли слова модифицировать, хотя бы по отношению к правам директорий.
Вы же уже употребляли слова модифицировать, хотя бы по отношению к правам директорий.
я там еще употреблял слово "папка" 
Как я уже сказал, что бы модифицировать, нужно записать.
а... надоело спорить. пусть будет ОСОБАЯ запись. так пойдёт?
В момент удаления файла его содержимое не модифицируется, запись в его содержимое не происходит, даже mtime не меняется 
А потом, это уже не файл.
3.1.4. Имя пользователя не должно содержать адреса электронной почты или веб-сайтов.
Мне убица от стену?
Это мой ник еще со старого форума. Что предлагаете делать? Правила имеют обратную силу?
Домен не мой.
Кстати, темя для очередного флейма:
катАлог vs каталОг vs директория vs папка :lol:
Это мой ник еще со старого форума. Что предлагаете делать? Правила имеют обратную силу?
Домен не мой.
поменяют
В момент удаления файла его содержимое не модифицируется,
в момент открытия файла на запись он тоже не меняется.
даже mtime не меняется
правильно. за то меняется dtime.
А потом, это уже не файл.
не. файл. Мало того, бывают удалённые файлы, без имени, и тем не менее, они лежат на диске, занимают место, да ещё и работают. Такие дела...
катАлог vs каталОг vs директория vs папка
было давеча на лоре. давай продолжим что-ли...
Такие дела...
В этом случае файл не является удаленным 
Бывают кошки без хвостов, но хвост без кошки не бывает.
Если у файла нет не одной жесткой ссылки - это не повод его удалять.
Еще конечно система анализирует счетчик открытий.
Как всем известно ( и мне в том числе): если файл был открыт, и удалены все его имена (жесткие ссылки ) ( при удалении имен будет меняться ctime ), то в дальнейшем в этот файл можно и писать и читать.
Так что файл - остается файлом
даже если у него нет имени.
А вот если он действительно удален, то он перестает существовать
не является больше файлом
Ваш КО.
Можно ли модифицировать без записи?
-Мне кажется нет
Можно ли записать без модификации?
Пожалуйста:
echo cat > cat
echo cat > cat
Была ли информация в файле модифицирована после второй команды?
МОДИФИЦИ'РОВАТЬ, рую, руешь, сов. и несов., что (книжн.).
Произвести (производить) модификацию чего-н., внести (вносить) во что-н. видоизменения, не преобразуя внутренней сущности предмета.
было давеча на лоре. давай продолжим что-ли...
Не участвовал 
Даже читать не тянет 
Но мне кажется, что с точки зрения архитектуры системы, по русски правильней называть этот тип файлов каталОг :rolleyes:
anonymous.ru, так можно спорить сколько угодно. пока мы не понимаем, что такое "хвост" и что такое "кошка" спор о том, бывают-ли хвосты без кошек не имеет смысла.
ссылки на словарик, кстати, не являются аргументом в нашем споре. Причина проста - в словаре не описан термин "модификация файла", авторы словаря толкуют слово "модификация" относительно чего-то другого. Это становится очевидным, если учесть, что inode - часть "внутренней сущности", а при модификации файла inode меняется. При этом содержимое может и не изменятся. ИМХО в этом случае всё-же следует принять, что "сущность" поменялась, к ней применили "нулевое изменение", и растояние по Левинштейну от старого файла к новому равно нулю. (что не мешает существованию модификации. каноничный пример: файл сначала был сжат сжимателем, а потом разжат. Несмотря на то, что информация ни на бит не изменилась, файл потерпел целых 2 модификации).
Про удаление. Если определить команду rm как:
1) Команда rm уничтожает имя файла из каталога в котором хранится этот файл.
2) При этом счётчик имён файла декрементируется.
3) если счётчик имён при выполнении п2 переходит от 1 к 0, то
3.1) текущее время записывается в dtime
3.2) все блоки, которые содержат информацию в файле присоединяются к списку свободных блоков
3.3) область, в которой хранилось положение блоков с информацией обнуляется
3.4) сам inode присоединяется к списку свободных инодов.
На самом деле, всё так и происходит. за одним исключением - п3 выполняется ПОСЛЕ завершения команды rm. Это может занять довольно продолжительное время, но на работу Системы в целом не влияет (разве что свободное место появляется не сразу после удаления. Т.е. если мы прибили файл на 100500мб вовсе не говорит о том, что у нас появится ещё 100500мб. Впрочем нам этого никто и не гарантировал).
Однако на практике удаление происходит довольно быстро. Единственное исключение - исполняемые файлы. Вот здесь удаление может растянутся на бесконечно длительный строк.
Как всем известно ( и мне в том числе): если файл был открыт, и удалены все его имена (жесткие ссылки ) ( при удалении имен будет меняться ctime ), то в дальнейшем в этот файл можно и писать и читать.
Так что файл - остается файлом smile даже если у него нет имени.
сейчас проверим...
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Разговоры о Linux и не только → Право на запись - модификацию
Форум работает на PunBB, при поддержке Informer Technologies, Inc