Саныч
Опытный участник
- Сообщения
- 734
- Реакции
- 741
В очередной статье из серии "Дело об..." от Марка Руссиновича (Mark Russinovich) мы поговорим об ошибке, вызванной некорректным наследованием прав в Windows.
Представляем вам первую публикацию из серии "Дело об" от стороннего автора. За последние два месяца мы получили множество великолепных статей с расследованиями, но для первого раза мы выбрали это, написанное Троем Вольбринком (Troy Wolbrink), корпоративным веб-мастером.
Трой столкнулся с проблемами со своим сервером и вместо того, перезагрузить его, переустановить его или звонить в Microsoft Product Support Services, где, несомненно, ему бы посоветовали эти же шаги, он использовал базовые техники для решения проблем, на что ему понадобилось несколько минут. В благодарность за детальную статью со скриншотами я послал Трою подписанною копию книги Windows Internals.
В свой доклад Case of the Unexplained..., который я озвучил наTechEd/IT в июне, я включил несколько новых дел. Даже если вы видели мой доклад с ноябрьского TechEd/ITForum, рекомендую вам ознакомиться и с этим, поскольку вы сможете узнать много нового.
Итак, слово Трею.
Недавно я перевел свой сайт с общего хостинга на выделенный сервер. Некоторые части моего сайта использовали FrontPage Server Extensions (FPSE), например, страницы, которые собирали данные и сохраняли их в лог.
Я установил FPSE, используя аплет установки и удаление программ, а потом сделал все, чтобы настроить его с помощью IIS. Но по какой-то причине я не мог правильно настроить FPSE, чтобы моя форма сбора данных работала. Сообщение об ошибке в браузере было абсолютно непонятным.
Я изучил на предмет возможных проблем логи из Event Log сервера, но ничего не нашел.
В мои планы входила замена данного сайта на соответствующий, созданный на ASP.NET и SQL Server, так что я не видел причин, чтобы становится гуру по FPSE для того, чтобы решить одну эту проблему. Но так как другие приоритеты в течение уже нескольких лет мне мешали перейти на ASP.NET, у меня не было другого выбора, кроме как провести расследование. Я как раз недавно смотрел "The Case of the Unexplained…", и решил запустить Process Monitor на своем сервере - возможно, я бы увидел источник проблемы. Я исключил из логов некоторые процессы, которые очевидно, что не могли иметь никакого отношения к моей проблеме. Это удалило много мусора. Так как моя страница называется TntWebLog.htm, а логи пишутся в файл TntWebLog.csv, то я настроил программу так, чтобы она подсвечивала любые события, в пути которых содержится TntWebLog.
Чтобы повторно вызвать появление проблемы я запустил браузер и попытался снова заполнить форму, после чего я прекратил захват событий в Process Monitor. После этого я пролистал список в поиске выделенных строчек. Я удивительно быстро нашел источник проблемы. FPSE пытался создать файл с таким же именем, который уже существовал.
Очевидно, что здесь было что-то не так с правами доступа. Я проверил права доступа к файлу TntWebLog.csv и не нашел в списке учетной записи IUSR_WEBBOARD, которая настроена в IIS для анонимного доступа.
Так что я зашел в расширенные свойства файла и отметил пункт "Allow inheritable permissions from the parent to propagate…", подтвердив свой выбор ОК.
Это действие позволило решить проблемы с безопасностью файла. Я провел тест и убедился, что проблема была решена.
Оглядываясь назад, я могу сказать, что эта проблема произошла из-за того, что я использовал Windows Explorer для перемещения, а не копирования файла. Для подтверждения провел несколько тестов. Когда вы перемещаете файл с помощью Windows Explorer, то Windows Explorer копирует и права доступа, а когда копируете - Windows Explorer создает новый файл, права для которого берет из прав папки. Если бы я изначально копировал этот файл, то проблемы бы этой не было.
Источник
Представляем вам первую публикацию из серии "Дело об" от стороннего автора. За последние два месяца мы получили множество великолепных статей с расследованиями, но для первого раза мы выбрали это, написанное Троем Вольбринком (Troy Wolbrink), корпоративным веб-мастером.
Трой столкнулся с проблемами со своим сервером и вместо того, перезагрузить его, переустановить его или звонить в Microsoft Product Support Services, где, несомненно, ему бы посоветовали эти же шаги, он использовал базовые техники для решения проблем, на что ему понадобилось несколько минут. В благодарность за детальную статью со скриншотами я послал Трою подписанною копию книги Windows Internals.
В свой доклад Case of the Unexplained..., который я озвучил наTechEd/IT в июне, я включил несколько новых дел. Даже если вы видели мой доклад с ноябрьского TechEd/ITForum, рекомендую вам ознакомиться и с этим, поскольку вы сможете узнать много нового.
Итак, слово Трею.
Недавно я перевел свой сайт с общего хостинга на выделенный сервер. Некоторые части моего сайта использовали FrontPage Server Extensions (FPSE), например, страницы, которые собирали данные и сохраняли их в лог.
Я установил FPSE, используя аплет установки и удаление программ, а потом сделал все, чтобы настроить его с помощью IIS. Но по какой-то причине я не мог правильно настроить FPSE, чтобы моя форма сбора данных работала. Сообщение об ошибке в браузере было абсолютно непонятным.
Я изучил на предмет возможных проблем логи из Event Log сервера, но ничего не нашел.
В мои планы входила замена данного сайта на соответствующий, созданный на ASP.NET и SQL Server, так что я не видел причин, чтобы становится гуру по FPSE для того, чтобы решить одну эту проблему. Но так как другие приоритеты в течение уже нескольких лет мне мешали перейти на ASP.NET, у меня не было другого выбора, кроме как провести расследование. Я как раз недавно смотрел "The Case of the Unexplained…", и решил запустить Process Monitor на своем сервере - возможно, я бы увидел источник проблемы. Я исключил из логов некоторые процессы, которые очевидно, что не могли иметь никакого отношения к моей проблеме. Это удалило много мусора. Так как моя страница называется TntWebLog.htm, а логи пишутся в файл TntWebLog.csv, то я настроил программу так, чтобы она подсвечивала любые события, в пути которых содержится TntWebLog.
Чтобы повторно вызвать появление проблемы я запустил браузер и попытался снова заполнить форму, после чего я прекратил захват событий в Process Monitor. После этого я пролистал список в поиске выделенных строчек. Я удивительно быстро нашел источник проблемы. FPSE пытался создать файл с таким же именем, который уже существовал.
Очевидно, что здесь было что-то не так с правами доступа. Я проверил права доступа к файлу TntWebLog.csv и не нашел в списке учетной записи IUSR_WEBBOARD, которая настроена в IIS для анонимного доступа.
Так что я зашел в расширенные свойства файла и отметил пункт "Allow inheritable permissions from the parent to propagate…", подтвердив свой выбор ОК.
Это действие позволило решить проблемы с безопасностью файла. Я провел тест и убедился, что проблема была решена.
Оглядываясь назад, я могу сказать, что эта проблема произошла из-за того, что я использовал Windows Explorer для перемещения, а не копирования файла. Для подтверждения провел несколько тестов. Когда вы перемещаете файл с помощью Windows Explorer, то Windows Explorer копирует и права доступа, а когда копируете - Windows Explorer создает новый файл, права для которого берет из прав папки. Если бы я изначально копировал этот файл, то проблемы бы этой не было.
Источник