По видимому папка не указывает на сайт: [Флейм] проблема с загрузкой сайта на FTP сервер сделанного в Muse — Флейм – Загрузка веб-сайтов Muse в стороннюю службу хостинга

Содержание

Полезные статьи. Как опубликовать сайт, созданный в Adobe Muse. LTD Beget

Adobe Muse СС — графический редактор, ориентированный на создание сайтов, небольших интернет-магазинов и лендингов без необходимости написания кода, продукт компании Adobe Systems.

В представленной статье будут освещены вопросы, связанные с публикованием проектов, созданных в среде Muse. Будем считать, что проект в стадии разработки либо уже создан и нужно его разместить на хостинге, чтобы он стал доступным для посетителей.

Итак, начнем.

Создадим новый сайт в разделе Сайты, более подробнее можно ознакомиться в Руководстве по ПУ.

Теперь нужно в разделе FTP создать новый аккаунт. Для этого нужно найти нашу директорию сайта и создать к ней FTP-аккаунт, подробности здесь.

Итак, мы настроили на стороне хостинга директорию сайта, создали FTP-аккаунт, теперь можно приступать к переносу сайта на сервер посредством редактора Muse.

Перейдем в окружение редактора Muse, выбираем проект, в нашем случае — это «Веб-сайт-1«.

В правом верхнем углу экрана кнопка «Опубликовать«, из выпадающего меню выбираем «FTP-сервер«.

В первом пункте выбираем адрес нашего сервера (адрес сервера можно посмотреть в панели управления хостингом, раздел FTP или в табличке «Общая информация» на главной страницы Панели управления аккаунтом), в нашем случае это matrix.beget.com, во втором пункте вводим имя от FTP-аккаунта, созданного ранее, в третьем пункте вводим пароль к нему, четвертый пункт на ваше усмотрение, в пятом пункте выбираем «FTP» , в шестом выбираем «Пассивный«, затем нажимаем на «Далее«.

В данном окне под первым пунктом вводим URL Вашего будущего сайта (имя прикреплённого домена к данной директории), в нашем случае

muse.redminedenia0d3.bget.ru, во втором пункте ничего вводить не надо (созданный FTP-аккаунт по умолчанию указывает в корень сайта), третий — на ваше усмотрение, в нашем случае «Все файлы«, поскольку мы закачиваем в первый раз наш проект, затем кликаем на «ОК«

Ожидаем, пока файлы закачаются по FTP.

Успех! Передача завершена, нажимаем «ОК«, затем должен открыться Ваш сайт в браузере.

Проверяем — сайт открывается от нас.

Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка«.

Работа с папками и файлами сайта. Навигация в браузере

Работа с папками и файлами сайта. Навигация в браузере

В данной статье речь пойдет о работе с папками и файлами сайтов построенных на HTML, CSS кодах, размещенных на хостинге провайдера. Она расчитана на минимальные знания будущего вебмастера.

Итак, как уже понятно, сайт состоит из папок и файлов, как все на Вашем компьютере, разница в том, что лежат они удаленно от Вас на компьютере хостинга, который обеспечивает их просмотр в Интернете. Название общей (главной) папки одновременно является наименованием сайта. Допустим имя Вашего сайта sitey.ry, соответственно начальная папка на хостинге, в которой лежат все остальные файлы и папки, называется также sitey.ru.

Как правило, начальной страницей сайта является файл index.html, который лежит в начальной папке с именем сайта. Браузеры так устроены, что видят этот файл заранее и автоматически открывают его из папки. Допустим адрес сайта

https://sitey.ru/ и https://sitey.ru/index.html для браузера одинаковы. Это относится также к файлам других расширений: index.php, index.cgi и т.д. В связи с этим файлы index (язык html) чаще являются главной страницей сайта, с которой происходит перенаправление по другим страницам, т.е. файлам с любым названием: page1.html, page2.html и подобные. Ссылки на другие страницы имеют вид: <a href=»https://sitey.ru/page1.html»>Другая страница</a> из них состоит меню сайта.

В структуре сайта всегда есть место папке с изображениями, картинками, часто ее именуют, как images. Для отображения картинки на странице используется ссылка на изображение вида: <img src=»images/1.jpg»> где images — наименование папки, в которой лежит картинка, а 1.jpg — имя картинки, фото, которое Вы присваиваете сами при редактировании изображения.

Смотрите титульную картинку.

Главное, что Вам стоит уяснить для себя, это то, что браузер открывает файлы по адресу (месторасположение) где они лежат. Например адрес

http://sitey.ry/images/1.jpg говорит отом, что откроется картинка 1.jpg, лежащая в папке images, а та в свою очередь лежит в папке сайта sitey.ru и соответственно он откроет эту картинку. Введенный в браузер адрес https://sitey.ru/down/page1.html откроет файл, лежащий в папке down, которая в свою очередь лежит в папке sitey.ru (Ваш сайт).

Поэкспериментируйте в Интернете с сайтами построенными на html, браузером Opera (в других браузерах также, но только сочетания слов команд другие):
— Кликните правой кнопкой мыши на любом изображении и выберите в всплывающем меню: «Копировать адрес изображения»
— Скопировали, теперь вставляем эту ссылку в адресное окно браузера и жмем ENTER — открывается чисто картинка. Смотрим введенный адрес и знаем в какой папке сайта лежит это изображение.

Эксперимент навигации по папкам:

Открываем, допустим, страницу сайта Man1.ru видеоуроки: http://man1.ru/videolessons/page/8/

Работа с папками и файлами сайта. Навигация в браузере

Смотрим внимательно на адрес и понятно, что открыта папка 8, лежащая в папке page, а та лежит в videolessons. В навигации по сайту видим, что всего папок с видеоуроками 111 и они лежат в папке page, что можно проверить перейдя на следующие страницы. А как перейти сразу, допустим в 67 папку, ведь в навигации нет промежуточной цифры 67? Но мы теперь знаем работу браузера с папками сайта и заменяем в адресном окне браузера цифру 8 на 67 и оказываемся сразу в 67 папке, на странице (файле) с вертикально оформленными ссылками на видеоуроки сайта.

Теперь о файле формата CSS.
Этот файл имеет расширение .css и может называться по разному, но чаще его обозначают как: style.css или css.css
Он не несет никакой смысловой нагрузки, а лишь дает

браузеру команды по отображению и размещению (местоположению) текста, картинок, таблиц, полей, блоков и т.д. В начале кода каждой страницы (если сайт построен на CSS) имеется ссылка типа:
<link href=»style/style.css» rel=»stylesheet» type=»text/css» /> в которой указан путь к файлу CSS и его название, для того, чтобы браузер знал чему ему подчиняться и какие команды выполнять. Т.е. при открытии страницы браузер видит, что у нас есть файл CSS и узнает его положение, читает и выполняет дизайнерские команды этого файла. Если у нас на сайте 100 страниц и в начале каждой стоит ссылка на файл с CSS кодом, то достаточно внести изменения в один этот файл (CSS), как все 100 страниц подчинятся этому изменению (команде).
Сайты с использованием CSS обычно открываются и работают быстрее, за счет того, что этот код кешируется (временно запоминается, записывается) браузером или сервером и пропадает надобность в дополнительных запросах о правиле отображения страницы. Не все браузеры поддерживают это кеширование.

При редактировании шаблона обращайте внимание на ссылки по размещению картинок: в них точно указана папка в которой лежит изображение, иначе бы оно не отображалось.
Следите и правильно указывайте ссылки на папки и файлы в них, от этого зависит правильная навигация по страницам сайта.

Редактируя готовый шаблон Вы можете присваивать произвольные названия папкам и файлам, кроме файла index.html. Но при изменении наименования обязательно внесите коррективы в ссылки на файл, папку, чтобы путь соответствовал новому названию.


Проще сначала отредактировать шаблон (создать сайт) с имеющимися названиями, подстраивая под них имена своих изображений, а уже потом используя поиск и замену в текстовом редакторе, оптом заменять названия.

Имейте ввиду, что содержимое папок по объёму размещённой в них информации имеет ограничения. Обычно большой вес имеют файлы видео и аудио форматов. Ограничения зависят от предоставленной и оплаченной Вами квоты на хостинге. Можно провести аналогию с мобильным телефоном: когда достигнуто предельное значение квоты хранилища — карты памяти телефона, то проблема решается увеличением объёма памяти мобильного устройства.

Магия с проводником windows, или почему не видны файлы при загрузке на сайт? — Хабр Q&A

Я разобрался в чём дело, кому интересно, читаем.

Существуем множество способов сохранения файлов на свой компьютер, но некоторые способы весьма неблагоприятно влияют на память проводника. Кто-то жмёт на файл правой кнопкой мыши, в выпадающем списке ищет «сохранить картинку как…», и жмёт «сохранить». Кто-то использует комбинацию Ctrl+S или Ctrl+Shift+S, а кто-то, как я ))) перетягивает картинку курсором прямо в папку. И она там сохраняется. НО, сохраняется не всегда как файл, дело в том, что основой отображения в проводнике windows являются ярлыки, даже если есть ярлык, не факт, что есть файл, который надо прочесть или отредактировать. При наборе команд, выбора из выпадающего списка, система запоминания работает НОРМАЛЬНО. Видимо криворукие программисты MicroSoft не очень то позаботились о функции drag, которая например в php работает как

AJAX. Но ОС написана на языке C# и очевидно там фокусы с перетаскиванием и сохранением хромают.

Чтобы не случилось такой магии как у меня, перетаскивать файлы в проводник не рекомендуется, так как иногда это приводит к сбою ярлыков, и вам будет казаться что файл вы у себя сохранили. В случае ошибки обычно вылезает файл desktop.ini — вы его не увидите, но он создастся. Его можно увидеть через FTP-клиент, или если настроить проводник так, чтобы он показывал скрытые папки и файлы. Полезно это будет тем, кто пользуется git, чтобы убедиться, что папка .git появилась. Так что, если вам в дальнейшем файл понадобится для закачки в сеть интернет, сохраняйте его через клик правой кнопки мыши. И всё будет работать.

Что с этим делать и как это исправить, я не знаю. Шутки ради, рекомендую изучить C# и C++, и допилить код windows, чтобы функция drag не лагала.

Всё. Всем спасибо за внимания, и успеха в делах.
P.S. Ezhyg — 666 — число человеческое, означает температуру тела 36,6 в библии это написано, я посчитал учитывая подсказку, поэтому мне смешно читать про проклятие. К тому же все чудеса появляются от незнания, объяснить можно всё, но не всем.

Запрет просмотра содержимого директории | Денис Кузменов

Столкнулся на днях с проблемой, которую я бы назвал классической и имеющей непосредственное отношение к безопасности не только сайта, но и всего веб-сервера. Суть проблемы — это просмотр содержимого папки на веб-сервере Apache.

Теория вопроса

Дело все в том, что в директивах Apache определен файл или список файлов, которые будут показаны по умолчанию.

Что это значит? Если посетитель заходит по адресу site.ru/about.php — имя файл указано явно. Если посетитель заходит по адресу site.ru/about/ — показан будет файл, указанный в параметрах Apache в качестве индексного. А вот такую картину мы получим если такого файла в папке нет:

пример листинга директории

Как же решить эту проблему? На самом деле все очень просто. Мне известны два способа:

  • запретить листинг, используя файл .htaccess;
  • запретить построение списка файла на уровне сервера.

Рассмотрим оба способа более подробно.

Запрет листинга каталогов через .htaccess

Достаточно добавить всего одну простую строчку:

# запрет выдачи листинга
Options -Indexes

Данное условие действует на все вложенные/дочерние папки. Следовательно, добавление данного условия в корневой файл .htaccess запрещает листинг директорий для всего сайта. При необходимости всегда можно разрешить выдачу листинга для конкретно взятой директории, для этого достаточно разместить в ней все тот же .htaccess, в котором будет содержаться следующий текст:

# разрешение выдачи листинга
Options Indexes

Как Вы уже могли заметить, разница между запретом и разрешением состоит только в символе -. Именно он обозначает, что индексирование папки запрещено.

С первым способом решения задачи все. Он идеален для тех случаев, когда нет доступа к конфигурации сервера, либо отсутствует желание/навыки в них лезть.

 Запрет листинга каталогов через директивы Apache

Фактически все те же самые манипуляции можно проделать в настройках самого веб-сервера.

Для этого достаточно открыть конфигурационный файл httpd.conf (или apache2.conf) и добавить в него всю ту же самую строку: Options -Indexes. Для верности — можно перезагрузить Apache. Небольшая шпаргалка, которая поможет в поисках системного файла.

Где расположен конфигурационный файл httpd.conf

Местонахождение данного файла напрямую зависит от операционной системы, установленной на сервере, а также версии Apache. Приведу небольшой список, который может облегчить поиск.

Debian, Ubuntu

apache 1.3
/etc/apache/httpd.conf

apache 2.2
/etc/apache2/apache2.conf

FreeBSD

apache 1.3
/usr/local/etc/apache/httpd.conf

apache 2.2
/usr/local/etc/apache22/httpd.conf

Linux (CentOS, Fedora)

/etc/httpd/conf/httpd.conf

Gentoo

apache 2.0
/etc/apache2/httpd.conf

Заключение

В результате работы обоих способов, вместо листинга папок мы получим ошибку 403, которая сообщает нам о том, что доступ закрыт (access forbidden). Задача решена. Благодарю за внимание!

SMB и NTFS-разрешения. Разбор полетов / Habr

Для чего в большинстве случаев в организации нужен сервер? Active Directory, RDS, сервер печати и еще куча мелких и крупных сервисов. Самая заметная всем роль, пожалуй, это файловый сервер. С ним люди, в отличие, от других ролей работают осознаннее всего. Они запоминают в какой папке что лежит, где находятся сканы документов, где их отчеты, где факсы, где общая папка, в которой можно все, куда доступ только одному из отделов, куда другому, а о некоторых они вообще не догадываются

О доступе к сетевым и локальным папкам на сервере я и хочу поговорить.

Доступ к общим ресурсам на сервере осуществляется, как все прекрасно знают, по протоколу SMB уже 3.0. Доступ по сети к папкам можно ограничивать SMB и NTFS-разрешениями. SMB-разрешения работают только при доступе к общей папке по сети и не имеют никакого влияния на доступность той или иной папки локально. NTFS-разрешения работают, как по сети, так и локально, обеспечивая намного больше гибкости в создании прав доступа. SMB и NTFS разрешения работают не отдельно, а дополняют друг друга, по принципу наибольшего ограничения прав.

Для того, чтобы отдать папку в общий доступ в Server 2012 в группе SMB Share Cmdlets, появился командлет New-SMBShare. На примере этого командлета мы увидим все возможности, доступные при создании общей папки, кроме кластерных конфигураций (это отдельная большая тема).

Создание новой общей папки выглядит очень просто:

net share homefolder=s:\ivanivanov /grant:"admin",full /grant:"folderowner",change /grant:"manager",read /cache:programs /remark:"Ivanov"
или
new-smbshare homefolder s:\ivanivanov –cachingmode programs –fullaccess admin –changeaccess folderowner –readaccess manager –noaccess all –folderenumerationmode accessbased -description "Ivanov"

Разбираемся:
-name
имя общей папки в сети, может отличаться от имени папки на локальном компьютере. Имеет ограничение в 80 символов, нельзя использовать имена pipe и mailslot.
-path
путь к локальной папке, которую нужно отдать в общий доступ. Путь должен быть полным, от корня диска.
-cachingmode
настройка автономности файлов в общей папке. Что такое автономный файл?Автономный файл – это копия файла, находящегося на сервере. Эта копия находится на локальном компьютере и позволяет работать с файлом без подключения к серверу. При подключении изменения синхронизируются. Синхронизируются в обе стороны: если вы сделали изменения в своем автономном файле – при следующем подключении файл на сервере будет изменен; если кто-то сделал изменения на сервере – то ваша локальная копия будет изменена. Если изменения произошли в обоих файлах сразу – получаем ошибку синхронизации и придется выбирать, какую версию сохранить. Для совместной работы использовать эту возможность я бы не стал, но если для каждого пользователя наделать шар и ограничить доступ для других чтением, без возможности записи получаем следующие плюшки:
  • Работа не зависит от сети – может сгореть свитч, может перезагружаться сервер, может оборваться провод или выключиться точка доступа – пользователь работает со своей копией, не замечая, что у вас там какая-то авария, при восстановлении сетевого подключения его работа уходит на сервер.
  • Пользователь может работать работу где угодно: на даче, в автобусе, в самолете – в тех местах, где подключение к VPN по каким-то причинам недоступно.
  • Если даже пользователь работает через VPN, но подключение или очень медленное, или постоянно обрывается – проще работать с автономной копией и синхронизировать изменения, чем пытаться что-то сделать на сервере.
  • Пользователь сам может выбирать что и когда синхронизировать, если дать ему такую возможность.


Принимает следующие значения:
  • none – файлы недоступны автономно, для доступа к файлам нужен доступ к серверу
  • manual – пользователи сами выбирают файлы, которые будут доступны автономно
  • programs – все в папке доступно автономно (документы и программы (файлы с расширением *.exe, *.dll))
  • documents – документы доступны, программы нет
  • branchcache – кэширование вместо локального компьютера пользователя происходит на серверах BranchCache, пользователи сами выбирают автономные файлы
-noaccess, -readaccess, -changeaccess, -fullaccess
разрешения общего доступа (share permissions).

У этих разрешений есть одно большое преимущество – они очень простые.

-noaccess secretary,steward – секретарше и завхозу нечего делать в общих папках бухгалтерии
-readaccess auditor – аудитор, проверяющий работу бухгалтерии может видеть имена файлов и подпапок в общей папке, открывать файлы для чтения, запускать программы.
-changeaccess accountant – бухгалтеры в своей общей папке могут создавать файлы и подпапки, изменять существующие файлы, удалять файлы и подпапки
-fullaccess admin – fullaccess это readaccess+changeaccess плюс возможность изменять разрешения.

При создании общей папки автоматически применяется наиболее ограничивающее правило – группе «Все» дается право на чтение.

Эти разрешения применяются только для пользователей, получивших доступ к общей папке по сети. При локальном входе в систему, например в случае терминального сервера, и секретарша и завхоз увидят в бухгалтерии все, что пожелают. Это исправляется NTFS-разрешениями. SMB-разрешения применяются ко всем файлам и папкам на общем ресурсе. Более тонкая настройка прав доступа осуществляется также NTFS-разрешениями.

-concurrentuserlimit
c помощью этого параметра можно ограничить максимальное число подключений к папке общего доступа. В принципе, также можно использовать для ограничения доступа к папке, дополняя NTFS-разрешения, только надо быть точно уверенным в необходимом количестве подключений.
-description
описание общего ресурса, которое видно в сетевом окружении. Описание – это очень хорошая вещь, которой многие пренебрегают.
-encryptdata
шифрование

В SMB до версии 3.0 единственным способом защитить трафик от файлового сервера клиенту был VPN. Как его реализовать зависело полностью от предпочтений системного администратора: SSL, PPTP, IPSEC-туннели или еще что-нибудь. В Server 2012 шифрование работает из коробки, в обычной локальной сети или через недоверенные сети, не требуя никаких специальных инфраструктурных решений. Его можно включить как для всего сервера, так и для отдельных общих папок. Алгоритмом шифрования в SMB 3.0 является AES-CCM, алгоритмом хеширования вместо HMAC-SHA256 стал AES-CMAC. Хорошая новость в том, что SMB 3.0 поддерживает аппаратный AES (AES-NI), плохая новость в том, что Россия не поддерживает AES-NI.

Чем грозит включение шифрования? Тем, что работать с зашифрованными общими папками смогут только клиенты, поддерживающие SMB 3.0, то есть Windows 8. Причина опять же, максимально допустимое ограничение прав пользователей. Предполагается, что администратор знает, что он делает и при необходимости даст доступ для клиентов с другой версией SMB. Но так как SMB 3.0 использует новые алгоритмы шифрования и хеширования трафик клиентов с другой версией SMB шифроваться не будет, нужен VPN. Пустить всех клиентов на файловый сервер с включенным шифрованием поможет команда

set-smbserverconfiguration –rejectunencryptedaccess $false

В конфигурации по умолчанию (запрещен нешифрованный трафик к зашифрованным общим папкам), при попытке доступа к папке клиента с версией SMB ниже 3.0 на клиенте мы получим «Ошибку доступа». На сервере в журнал Microsoft-Windows-SmbServer/Operational будет добавлено событие 1003, в котором можно будет найти IP-адрес клиента, пытавшегося получить доступ.

Шифрование SMB и EFS – это разные вещи, никак не связанные друг с другом, то есть его можно применять на FAT и ReFS томах.

-folderenumerationmode
Это Access-Based Enumeration. С включенным Access-Based Enumeration пользователи, не имеющие доступа к общей папке, просто не увидят ее на файловом сервере и будет меньше вопросов, почему у меня нет доступа к той или этой папке. Пользователь видит свои доступные папки и не пытается лезть в чужие дела. По умолчанию – выключено.
  • accessbased – включить
  • unrestricted – выключить
-temporary
Этот ключ создает временную общую папку, доступ к которой будет прекращен после перезагрузки сервера. По умолчанию создаются постоянные общие папки.
NTFS-разрешения

С помощью NTFS-разрешений мы можем более детально разграничить права в папке. Можем запретить определенной группе изменять определенный файл, оставив возможность редактирования всего основного; в одной и той же папке одна группа пользователей может иметь права изменения одного файла и не сможет просматривать другие файлы, редактируемые другой группой пользователей и наоборот. Короче говоря, NTFS-разрешения позволяют нам создать очень гибкую систему доступа, главное самому потом в ней не запутаться. К тому же NTFS-разрешения работают, как при доступе к папке по сети, дополняя разрешения общего доступа, так и при локальном доступе к файлам и папкам.

Существует шесть основных (basic) разрешений, которые являются комбинацией из 14 дополнительных (advanced) разрешений.

Основные разрешения

Полный доступ (fullcontrol) – полный доступ к папке или файлу, с возможностью изменять права доступа и правила аудита к папкам и файлам

Изменение (modify) – право чтения, изменения, просмотра содержимого папки, удаления папок/файлов и запуска выполняемых файлов. Включает в себя Чтение и выполнение (readandexecute), Запись (write) и Удаление (delete).

Чтение и выполнение (readandexecute) – право открывать папки и файлы для чтения, без возможности записи. Также возможен запуск выполняемых файлов.

Список содержимого папки (listdirectory) – право просматривать содержимое папки

Чтение (read) – право открывать папки и файлы для чтения, без возможности записи. Включает в себя Содержание папки / Чтение данных (readdata), Чтение атрибутов (readattributes), Чтение дополнительных атрибутов (readextendedattributes) и Чтение разрешений (readpermissions)

Запись (write) – право создавать папки и файлы, модифицировать файлы. Включает в себя Создание файлов / Запись данных (writedata), Создание папок / Дозапись данных (appenddata), Запись атрибутов (writeattributes) и Запись дополнительных атрибутов (writeextendedattributes)

Дополнительные разрешения

Я ставил на папку только 1 из 14 разрешений и смотрел, что получается. В реальном мире, в большинстве случаев хватает основных разрешений, но мне было интересно поведение папок и файлов с максимально урезанными правами.

Траверс папок / выполнение файлов (traverse) – право запускать и читать файлы, независимо от прав доступа к папке. Доступа к папке у пользователя не будет, (что находится в папке останется загадкой) но файлы в папке будут доступны по прямой ссылке (полный, относительный или UNC-путь). Можно поставить на папку Траверс папок, а на файл любые другие разрешения, которые нужны пользователю для работы. Создавать и удалять файлы в папке у пользователя не получится.

Содержание папки / Чтение данных (readdata) – право просматривать содержимое папки без возможности изменения. Запускать и открывать файлы в просматриваемой папке нельзя

Чтение атрибутов (readattributes) – право просматривать атрибуты (FileAttributes) папки или файла.
Просматривать содержимое папки или файлов или изменить какие-либо атрибуты нельзя.

Чтение дополнительных атрибутов (readextendedattributes) – право просматривать дополнительные атрибуты папки или файла.

Единственное, что я смог найти по дополнительным атрибутам – это то, что они используются для обеспечения обратной совместимости с приложениями OS/2. (Windows Internals, Part 2: Covering Windows Server 2008 R2 and Windows 7). Больше мне о них ничего не известно.

Создание файлов / запись данных (writedata) – дает пользователю возможность создавать файлы в папке, в которую у него нет доступа. Можно копировать файлы в папку и создавать в папке новые файлы. Нельзя просматривать содержимое папки, создавать новые папки и изменять уже существующие файлы. Пользователь не сможет изменить какой-либо файл, даже если он является владельцем этого файла – только создавать.

Создание папок / дозапись данных (appenddata) – дает пользователю возможность создавать подпапки в папке и добавлять данные в конец файла, не изменяя существующее содержание.

ПроверкаC созданием подпапок все понятно:
ni c:\testperms\testappend –itemtype directory
отработает, как ожидается — создаст в недоступной для просмотра пользователем папке testperms подпапку testappend. Попробуем добавить строку в конец файла – сэмулируем ведение какого-нибудь лога.
newevent >> c:\testperms\user.log
Отказано в доступе.

Хм… В CMD не работает. А если так.
ac c:\testperms\user.log newevent
ac : Отказано в доступе по пути "C:\testperms\user.log".

А по конвейеру?
"newevent" | out-file c:\testperms\user.log -append
out-file : Отказано в доступе по пути "C:\testperms\user.log".

И так не работает.

Начинаем сеанс черной магии: используем класс File, метод AppendText. Получаем объект лога.

$log = [io.file]::appendtext("c:\testperms\user.log")
Исключение при вызове "AppendText" с "1" аргументами: "Отказано в доступе по пути "c:\testperms\user.log"."

Думаю, что AppendAllText пробовать уже не стоит
$log = [io.file]::appendalltext("c:\testperms\user.log","newevent")
Исключение при вызове "AppendAllText" с "2" аргументами: "Отказано в доступе по пути "c:\testperms\user.log"."

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

Нам нужно пересмотреть концепцию: давайте будем не получать объект лога, а создадим новый, в котором зададим все интересующие нас параметры. Нам нужно что-то где мы можем явно указать права доступа. Нам нужен FileStream, а конкретнее нам поможет FileStream Constructor (String, FileMode, FileSystemRights, FileShare, Int32, FileOptions). Нужны следующие параметры:

  • Путь к файлу – понятно
  • Как открывать файл – открыть файл и найти конец файла
  • Права доступа к файлу – дозапись данных
  • Доступ для других объектов FileStream – не нужен
  • Размер буфера – по умолчанию 8 байт
  • Дополнительные опции — нет

Получается примерно так:
$log = new-object io.filestream("c:\testperms\user.log",[io.filemode]::append,[security.accesscontrol.filesystemrights]::appenddata,[io.fileshare]::none,8,[io.fileoptions]::none)

Работает! Объект лога мы создали, попробуем туда что-нибудь записать. Метод FileStream.Write принимает входящие значения в байтах. Перегоняем событие, которое мы хотим записать, в байты – класс Encoding, метод GetEncoding (нам не нужны кракозябры на выходе) и GetBytes (собственно, конвертирование)
$event = "Произошло новое событие."
$eventbytes = [text.encoding]::getencoding("windows-1251").getbytes($event)

Параметры FileStream.Write:
Что писать; откуда начинать писать; количество байт, которые нужно записать
Записываем:
$log.write($eventbytes,0,$eventbytes.count)

Проверяем.
gc c:\testperms\user.log
gc : Отказано в доступе по пути "C:\testperms\user.log ".

Все нормально, у пользователя нет прав на просмотр написанного. Перелогиниваемся под администратором.
gc c:\testperms\user.log
Произошло новое событие.

Все работает.

Папке, в которой находится файл кроме разрешения Создание папок / дозапись данных должно быть еще выдано разрешение Содержание папки / Чтение данных. На файл хватает только Создание папок / дозапись данных с отключенным наследованием. Полностью оградить пользователя (а пользователем может быть и злоумышленник) от файлов, в которые он должен что-то писать не получится, но с другой стороны, кроме списка файлов в папке, пользователь ничего не увидит и не сможет сделать.

Вывод из этого простой: в батниках реализовать безопасное логирование чего-либо не получится, PowerShell спасает умение работать c .NET объектами.


Запись атрибутов (writeattributes) – разрешаем пользователю изменять атрибуты файла или папки. Вроде все просто. Но вот только что ответить на вопрос: «Фотографии моих котиков занимают почти все место в моем профиле и у меня не остается места для деловой переписки. Я бы хотел сжать папку с котиками, но у меня требуют прав администратора. Вы же говорили, что у меня есть право менять атрибуты папок. Это же атрибут? Почему я не могу его поменять?»

Да, пользователю с правом записи атрибутов можно менять почти все видимые атрибуты файлов и папок, кроме атрибутов сжатия и шифрования. Технически, пользователю дается право выполнять функцию SetFileAttributes. А сжатие файлов выполняется функцией DeviceIOControl, которой нужно передать параметр FSCTL_SET_COMPRESSION и сжатие файлов является далеко не единственной ее работой. С помощью этой функции мы можем управлять всеми устройствами и их ресурсами в системе и, наверное, дать пользователю это право на выполнение этой функции означает сделать его администратором.

С шифрованием история похожа: функция EncryptFile, которая как раз и отвечает за шифрование, требует, чтобы у пользователя были права Содержание папки / Чтение данных, Создание файлов / Запись данных, Чтение атрибутов, Запись атрибутов и Синхронизация на объект. Без них ничего не получится.

Запись расширенных атрибутов (writextendedattributes). Ну это тех, которые используются для обратной совместимости с приложениями OS/2, ага. Ну, а еще в расширенные атрибуты файла C:\Windows\system32\services.exe с недавних пор начали записывать троянов (ZeroAccess.C). Может быть стоит их отключать на самом верхнем уровне? На этот вопрос я не могу дать ответ, теоретически – может быть и стоит, практически в продакшене – я не пробовал.

Удаление подпапок и файлов. (deletesubdirectoriesandfiles) Интересное разрешение, применяемое только к папкам. Суть в том, чтобы разрешить пользователю удалять подпапки и файлы в родительской папке, не давая разрешения Удаление.

Допустим, есть каталог товаров, в который пользователи заносят данные. Есть родительская папка Catalog, внутри подпапки по алфавиту, от A до Z, внутри них какие-нибудь наименования. Наименования меняются каждый день, что-то добавляется, что-то изменяется, что-то устаревает и устаревшую информацию нужно удалять. Но будет не очень хорошо, если кто-нибудь по запарке или злому умыслу грохнет весь каталог K, что очень возможно, если у пользователей есть право Удаление. Если забрать у пользователей право Удаление, то администратору можно смело менять работу, потому что он весь день будет выполнять запросы на удаление того или иного наименования.

Вот тут и включается Удаление подпапок и файлов. На всех буквах алфавита отключается наследование и пользователям добавляется право Удаление подпапок и файлов. В итоге, в папке catalog пользователи не смогут удалить ни одну букву, но внутри букв могут удалять все, что угодно.

Удаление (delete). Здесь все просто. Удаление — это удаление. Не работает без права Чтение.

Чтение разрешений (readpermissions) дает право пользователю просматривать разрешения на папке или файле. Нет права – пользователь не видит разрешения на вкладке «Безопасность»

Смена разрешений (changepermissions) – разрешает пользователю менять разрешения, по сути делает пользователя администратором папки. Можно использовать, например, для делегирования полномочий техподдержке. Без права чтения разрешений не имеет никакого смысла. Смена разрешений не подразумевает смену владельца папки.

Смена владельца (takeownership) – для начала, кто такой владелец. Владелец – это пользователь, создавший файл или папку.

Особенностью владельца является то, что у него есть полный доступ к созданной папке, он может раздавать разрешения на свою созданную папку, но что важнее – никто не может лишить владельца права изменять разрешения на его папку или файл. Если Вася создал папку, дал полный доступ Пете, а Петя зашел и грохнул доступ пользователей к папке вообще и Васи в частности, то Вася без особого труда может восстановить статус-кво, так как он является владельцем папки. Изменить владельца папки Петя не сможет, даже если у него есть разрешение Смена владельца. Более того, даже Вася не может изменить владельца, несмотря на то, что папку создал он. Право Смена владельца относится только к группе Администраторы или Администраторы домена.

Но если Петя внутри Васиной папки создал файл и не дал Васе доступа к нему, то Васе остается только думать и гадать, что же внутри этого файла такого секретного. Вася не сможет изменить права доступа к файлу, потому что владельцем файла является Петя. Также Вася не сможет изменить владельца файла – изменение владельца подконтейнеров и объектов также является привилегией группы Администраторы, к которой Вася не относится. Единственный оставшийся у Васи вариант – смотреть на Петин файл внутри своей папки.

Управляем

В CMD для управления разрешениями используется хорошо всем известная icacls. В PowerShell управление NTFS-разрешениями выглядит примерно так:

Получить объект, на который мы будем устанавливать разрешения

$acl = get-acl c:\testperms

Соорудить строку с правами с помощью класса System.Security.AccessControl.FileSystemAccessRule. Можем задать следующие параметры:
  • группа/имя пользователя – для кого делаем ACL
  • разрешение – ACE (принимает значения, указанные в посте)
  • применяется к – в GUI это выпадающий список в дополнительных параметрах безопасности. На самом деле принимает всего 3 значения: none (только к этой папке), containerinherit (применяется ко всем подпапкам), objectinherit (применяется ко всем файлам). Значения можно комбинировать.
  • применять эти разрешения к объектам и контейнерам только внутри этого контейнера (чекбокс в GUI) – также 3 значения: none (флажок снят), inheritonly (ACE применяется только к выбранному типу объекта), nopropagateinherit (применять разрешения только внутри этого контейнера).
  • правило – разрешить (allow) или запретить (deny)

Строка с правами по умолчанию будет выглядеть так:
$permission = “contoso.com\admin”,”fullcontrol”,”containerinherit,objectinherit”,”none”,”allow”

Сделать новую ACE с определенными выше разрешениями
$ace = new-object security.accesscontrol.filesystemaccessrule $permission

И применить свежесозданную ACE к объекту
$acl.setaccessrule($ace)
$acl | set-acl c:\testperms

Применяем на практике

Вооружившись знаниями о SMB и NTFS разрешениях, комбинируя их можно создавать правила доступа абсолютно любой сложности. Несколько примеров:
Тип SMB-разрешения NTFS-разрешения
Папка для всех (Public) Пользователи – Чтение/запись Пользователи – Изменение
Черный ящик. Пользователи скидывают конфиденциальные отчеты, предложения, кляузы – руководство читает. Пользователи – Чтение/запись
Руководство – Чтение/запись
Пользователи – Запись, применяется Только для этой папки. Предполагается, что запись файла в эту папку – билет в один конец, так как удобного способа редактирования без права Просмотр содержимого папки сохраненных в этой папке файлов не существует (удобного для пользователей способа записи в такую папку, кстати, тоже не существует). А просмотр нарушает конфиденциальность.

Руководство – Изменение.

Приложения Пользователи – Чтение Пользователи – Чтение, Чтение и выполнение, Просмотр содержимого папки.

Естественно, некоторые приложения могут требовать дополнительных прав для своей работы. Но в общем случае, например, хранение системных утилит для диагностики (того же SysInternals Suite) этого вполне хватает.

Профили пользователей Каждому пользователю – Чтение/запись на его папку Каждому пользователю – Изменение на его папку.

Разрешения в Windows – противоречивая штука. С одной стороны – основные разрешения довольно просты и покрывают 90% случаев. Но когда начинает требоваться более тонкая настройка: разные группы пользователей, одна папка, требования безопасности к общим папкам – то разобраться с дополнительными разрешениями, наследованиями и владельцами бывает довольно сложно.

Надеюсь, я не запутал никого еще больше.

Использован материал из:
MSDN
Technet

Секреты файла hosts

После некоторого затишья вновь пошла волна вопросов на тему «Не открывается страница..», «не могу войти на сайт…». Правило здесь одно – начать проверку с файла hosts.

Что такое файл hosts

Начнем с того у каждого сайта есть текстовое название и соответствующий уникальный цифровой код. Обычно в адресной строке мы пишем текстовый адрес сайта, поскольку так нам удобнее. Как только мы ввели название сайта, тут же специальный DNS-сервер преобразует это название в цифровой код – IP-адрес.

Секреты hosts

Файл hosts предназначен для ускорения доступа к сайту в обход DNS-сервера. То есть, если мы сами пропишем  здесь пару IP-адрес и  имя сайта, то обращения к DNS- серверу не будет.

Теперь вы понимаете, что если прописать эту пару неверно, то и переход будет не туда, куда вы ожидали или вообще никуда.

Вот эту особенность и используют вредоносные программы, дописывая в hosts неверные пары — IP адрес и имя сайта.

Исправление файла hosts.

Файл hosts текстовый и его легко исправить самому. Расположен он по адресу

c:/windows/system32/etc

h3

О том, как его исправить и как  выглядит файл hosts для разных ОС– очень подробно было написано здесь.

ВНИМАНИЕ! В папке etc кроме файла hosts находятся другие файлы, которые предназначены для настройки сети.  Это networks, protocol, services,hosts, lmhosts.sam.  НЕ УДАЛЯЙТЕ эту папку совсем!.

Вы можете исправить файл hosts с помощью:

  •  утилиты Microsoft Fix it  — перейдите на сайт к его создателям и проделайте это двумя щелчками мыши.
  •  утилиты AVZ — очень подробно об этом написано здесь.
  •  при проверке компьютера с помощью бесплатной утилиты CureIt — скачать бесплатно Dr Web CureIt.
  •  исправление вручную.

При исправлении файла hosts вы должны знать о том, что здесь есть подводные камни. Вирусописатели используют нехитрые, но вполне эффективные уловки, чтобы подсунуть нам фиктивный файл hosts. Поэтому, если вы не можете открыть сайт и собираетесь проверить файл hosts, будьте предельно внимательны.

Какой файл hosts вы правите?

Если вы проверяете свой hosts и либо не находите его совсем, либо считаете его правильным, проведите дополнительный анализ.  Вам потребуется дополнительное умение, чуть больше чем обычное владение блокнотом. Но — ничего сложного.

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

Уловка 1 —  перенаправление в реестре

Если вы не можете войти на сайт, а ваш файл hosts верный или вы не находите hosts в папке С:\windows\system32\drivers\etc\,  значит вирус подменил расположение файла в ключе реестра.

Чтобы избавиться от вируса, выполните следующие действия:
1. Пуск — Выполнить — regedit.exe.
2. В окне редактора реестра найдите ветку —
\HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. Во вкладке Parameters в правой части окна появится меню с именем файла, его типом и значением. Проверьте значение параметра DataBasePath. Должно быть %SystemRoot%\System32\drivers\etc. Если это не так, то кликаем правой кнопкой мыши на этой строке, выбираем Изменить, и вводим правильное значение.

Даже если hosts у вас там, где нужно, но операционная система использует тот файл, путь к которому указан параметром DataBasePath.

Уловка 2 — вставка пустых строк.

Чтобы обнаружить лишние строчки в файле hosts было сложнее, они записываются в самый конец файла после большого количества пустых строк.

С первого взгляда такой файл выглядит нормально и при беглом взгляде мы можем ничего не заметить, однако надо всегда обращать внимание на ползунок полосы прокрутки в Блокноте:

Если ползунок присутствует, то его надо опустить вниз, чтобы посмотреть содержимое файла полностью. Зачастую это оказывается полезным, т.к. внизу файла мы можем найти неприятные сюрпризы:

Уловка 3 — скрытие файла.

Файлу hosts присваивается атрибут Скрытый, и он становится не виден — нету файла hosts. А поскольку по умолчанию скрытые файлы и папки не отображаются в проводнике, то пользователь может не найти этот файл, а значит не может и отредактировать его.

Если у вас нету файла hosts, значит нам надо сделать его видимым. Для этого в Windows XP делаем следующее: Пуск – Панель управления – Свойства папки – вкладка Вид – установить признак Показывать скрытые файлы и папки – нажать Ok (в Windows 7 все то же, но вместо Свойства папки пункт называется Параметры папок).

Показать все файлы

Уловка 4 — подложный файл с похожим названием.

Создается ложный файл без расширения, но имеющий схожее название, например файл host. А настоящий файл hosts при этом делают скрытым.

В этом случае мы опять редактируем ложный файл, а настоящий остается без изменений. Такой файл (host) можно тоже смело удалять!

Уловка 5 — изменение расширения.

Создается ложный файл hosts, который в отличие от настоящего файла имеет какое-нибудь расширение (например .txt). А поскольку по умолчанию для зарегистрированных типов файлов расширения не отображаются, то пользователь а следовательно мы можем легко перепутать файлы и редактировать совсем не тот файл.

Уловка 6 — невозможно отредактировать файл hosts.

И еще одна вещь, на которую слишком торопливые часто не обращают внимание.

Вы нашли правильный файл hosts, обнаружили в нем лишние строки, начинаете править, но изменения не сохраняются. А все потому, что вашему файлу hosts присвоен атрибут «Только чтение».

Атрибуты файла

Уловка 7 — настройка прокси.

Не буду сильно заморачиваться на прокси, просто проверьте настройки своего браузера.

Opera: Общие настройки (Ctrl+F12) — Расширенные — Сеть — кнопка Прокси

Настройка прокси в Opera

Firefox:  Настройки->Дополнительно->вкладка Сеть — Настроить

Настройка прокси в Firefox

По умолчанию там стоит галочка «использовать системные настройки прокси», переключите на “Без прокси”, попробуйте сохранить настройки и перезапустить браузер.

Если стоит ручная настройка и прописан адрес прокси сервера, при этом вы его не устанавливали: сохраните адрес, удалите его, переведите в режим «без прокси».

Открываем наш редактор реестра (используйте сочетание клавиш Win+R), нажимаем CTRL+F (поиск) и вставляем сохраненный адрес, затем — найти далее… Все ключи с данным адресом нужно будет изменить, а именно удалить присвоенное им значение нашего адреса.

Перезагружаем Windows и проверяем.

Использование hosts в своих целях.

Способ 1 — ускорить доступ к сайту с помощью hosts.

Если мы часто посещаем какой-либо сайт (например, yandex.ru), то можно добавить в конец файла hosts такие строки:

87.250.250.11  yandex.ru
87.250.250.11  www.yandex.ru

Браузер, обнаружив эти строки, не будет обращаться к DNS-серверу, а значит, процесс загрузки данного сайта будет проходить быстрее.

Как узнать IP сайта?

Да хотя бы здесь.

Как узнать IP

Способ 2 — запретить доступ к сайту.

Можно заблокировать нежелательные сайты, назначив против их имени либо локальный IP 127.0.0.1. либо IP какого-то другого сайта.

Например, по журналу вы видите, что ребенок часами играет в танчики. Строки в hosts файле вида:

127.0.0.1 tankionline.com
127.0.0.1 www.tankionline.com

вообще закрывает доступ к этому сайту (сообщение об ошибке при соединении).

А строка вида

81.176.66.163 kiss.ru

работает изощреннее. При попытке ввести в браузере kiss.ru будет происходить соединение с IP 81.176.66.163, т.е. с библиотекой Мошкова.

Как видите, мы можем сделать то же самое что и вирусы, но уже с пользой.

Можно заблокировать наиболее зловредные баннерообменные сети и прочие рассадники рекламного мусора. Например строка вида:

127.0.0.1 www.bannerdrive.ru

отключит загрузку баннеров с www.bannerdrive.ru. В принципе, в интернете можно найти очень большие (до 1 МБ) файлы hosts, в которых вписаны (блокированы) тысячи рекламных серверов.

Но не увлекайтесь этим особо — большие (от нескольких десятков кБ) файлы hosts требуют заметного времени на их просмотр, что подтормаживает работу. Но сильно экономить строки тоже не надо — файлы до 10 кБ ничего не тормозят даже на старых машинах, а 10 кБ — это многие сотни строк.

Особенности правки файла hosts в Windows 8.

В Windows 8, в отличие от предыдущих версий, изменен порядок редактирования файла hosts. Разработчики уделили этому вопросу гораздо больше внимания. И связано это с более жесткими требованиями к безопасности системы и защите столь важного файла от посягательств из вне.

Эту защиту осуществляет встроенный антивирус Windows Defender — при внесении любых изменений в файл hosts, Windows 8 автоматически удалит их, защитив систему от атак злоумышленников. Но для более опытных и уверенных в себе пользователей существует один способ обхода данной защиты.

  • Открываем окно самого защитника. Для этого перейдите на стартовый экран и вызовите боковую панель Charms Bar. Если вы успели принарядить свою систему и установили windows 8 темы такие, что система изменилась до неузнаваемости, то воспользуйтесь сочетанием клавиши Windows Win+C
  • Зайдите в поиск и введите запрос «Defender».
  • Кликаем на показанной строке. Откроется окно, в котором нужно  перейти на вкладку «Параметры», выбрать  «Исключенные файлы и расположения» и нажать кнопку «Обзор».
  • Находим путь к файлу C:\Windows\System32\Drivers\etc\hosts и нажимаем ОК.
  • Теперь, чтобы внести этот файл в исключения защиты, нужно нажать кнопку «Добавить» и «Сохранить изменения».

Теперь можно приступать к редактированию самого файла. Однако, имейте в виду, что изменить файл можно только от имени администратора.  Для этого включаем поиск приложений — Win+C -> Иконка Поиска -> вводим запрос «Блокнот«.

Запускаем Блокнот и в появившемся снизу меню выбираем иконку с заголовком «Запуск от имени Администратора».

Откроется привычный блокнот и можно изменять файл hosts как обычно.

В заключение.

После того, как вы удачно исправили свой hosts, обязательно проверьте компьютер на наличие вирусов и измените пароли от почтового ящика.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *