Форум программистов, компьютерный форум CyberForum.ru

Delphi и WinAPI

Войти
Регистрация
Восстановить пароль
 
 
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
#1

Запрет на изменение папки - Delphi WinAPI

03.12.2016, 17:37. Просмотров 796. Ответов 32
Метки нет (Все метки)

Подскажите, каким образом можно реализовать запрет доступа на любое изменение, открытие, чтение какой-либо папки и всех файлов внутри её посредством winapi в delphi 7, OC Windows.
Требуется так, чтоб я открыл программу и нажал кнопку, и после этого пока программа работает будет запрет на доступ к папке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2016, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запрет на изменение папки (Delphi WinAPI):

Как сделать запрет на изменение данных в ДбГриде? - Delphi
при двойном щелчке по записи в дбгриде выделяется содержимое ячейки и можно ввести туда что угодно. Как сделать так чтобы при двойном...

Расшаренные папки в локальной сети. Запрет копирования файлов/папки? - Windows 7
При разрешенном чтении запретить копирование файлов или папки целиком в локальной сети? очень слабо верится что такое возможно, но всё...

Изменение даты создания папки и изменение MAC-адреса - CMD/BAT
Ребята всем привет. Нужна ваша помощь. Пишу bat для одной операции и столкнулся с проблемой что надо изменить дату создание папки Program...

Запрет на удаление папки - Администрирование Windows
Доброго! Может кто подскажет как в Windows 7 сделать полный доступ к папке и ее содержимому, кроме возможности ее (главной папки)...

Запрет на удаление папки с файлами - CMD/BAT
Доброго времени. Знаю что можно через параметры папки, безопасность-дополнительно-изменить разрешения-изменить, можно поставить галочки на...

Запрет на индексацию папки поисковиками - SEO
На сайте, в корне есть папка с именем "folder", как запретить поисковикам индексировать её содержимое? Или как поисковику сказать что в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
qwertehok
1403 / 1399 / 291
Регистрация: 29.08.2013
Сообщений: 9,169
03.12.2016, 20:31 #2
как вы себе это представляете?
можно создать пользователя и дать ему права на папку, а остальных убрать
но администратор сможет все равно стать владельцем и назначить себе права

можно конечно постоянно мониторить изменение прав на папку, но ИМХО это как-то не красиво

ЗЫ может вы опишите исходную задачу?
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
03.12.2016, 21:03  [ТС] #3
Суть такая примерно: есть компьютер, скажем, что он как сервер. На нём данные. Если к серверу через локалку кто-то подключится, то мне нужно сделать программно так, чтобы у него не было доступа к этим данным, он не мог ни скопировать, ни прочитать, ни удалить их.
Убежденный
Системный программист
Эксперт С++
15515 / 7013 / 1109
Регистрация: 02.05.2013
Сообщений: 11,452
Завершенные тесты: 1
03.12.2016, 21:36 #4
Чем не устраивает вариант поставить запрет на доступ пользователям,
выполнившим вход в систему по сети? Группа называется S-1-5-2,
если не ошибаюсь. В помощь функции SetSecurityInfo, SetNamedSecurityInfo.
qwertehok
1403 / 1399 / 291
Регистрация: 29.08.2013
Сообщений: 9,169
03.12.2016, 23:20 #5
Цитата Сообщение от demon31 Посмотреть сообщение
Если к серверу через локалку кто-то подключится
что значит кто-то?
если кто-то значит у него есть имя и пароль
если есть имя запретите этому подключаться к ненужным ему папкам

домен то поднят?
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
04.12.2016, 12:33  [ТС] #6
Подразумевается несанкционированный доступ.
Сам по себе сервер доступен для пользователей, но именно эта папка с файлами, должна быть недоступна.
И недоступна именно программно, а не просто выставлены права.
Убежденный
Системный программист
Эксперт С++
15515 / 7013 / 1109
Регистрация: 02.05.2013
Сообщений: 11,452
Завершенные тесты: 1
04.12.2016, 12:51 #7
Цитата Сообщение от demon31 Посмотреть сообщение
И недоступна именно программно, а не просто выставлены права.
Если бы запрет доступа можно было обойти программно, в такой "защите"
не было бы никакого смысла.
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
04.12.2016, 13:11  [ТС] #8
А если перефразировать задачу: можно ли сделать так, чтобы пока выполняется моя программа, т.е. пока она включена, нельзя было ничего сделать с папкой и файлами в ней, ни читать, ни скопировать, ни удалить?
Убежденный
Системный программист
Эксперт С++
15515 / 7013 / 1109
Регистрация: 02.05.2013
Сообщений: 11,452
Завершенные тесты: 1
04.12.2016, 13:26 #9
Можно, например, ставить права на папку при запуске программы и
снимать их при завершении.

А еще можно фильтрующий драйвер файловой системы написать,
но это будет на несколько порядков сложнее...
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
04.12.2016, 13:28  [ТС] #10
А как реализовать первый способ?
qwertehok
1403 / 1399 / 291
Регистрация: 29.08.2013
Сообщений: 9,169
04.12.2016, 15:53 #11
а смысл тогда в программе?
батником можно права менять
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
04.12.2016, 16:15  [ТС] #12
Смысл в том, что мне нужно запретить доступ ...
Убежденный
Системный программист
Эксперт С++
15515 / 7013 / 1109
Регистрация: 02.05.2013
Сообщений: 11,452
Завершенные тесты: 1
04.12.2016, 16:23 #13
Написал же выше - SetSecurityInfo, SetNamedSecurityInfo.
Можно, например, сгенерировать дескриптор безопасности и вытащить
из него список контроля доступа (DACL), после чего навесить на нужную папку.
Т.е. при запуске программы делаем SetSecurityInfo с DACL, где разрешен
доступ всем, кроме залогинившихся по сети, а при завершении программы
снимаем его, заменяя обычным, где доступ разрешен всем.
См. функции ConvertStringSecurityDescriptorToSecurityDescriptor и GetSecurityDescriptorDacl.
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
04.12.2016, 16:48  [ТС] #14
Ох, сложно .-.
Я копался с SetSecurityInfo, SetNamedSecurityInfo и даже близко не понял как они устроены.
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 44
Записей в блоге: 2
04.12.2016, 17:37 #15
А "открыть" все фалы в папке не вариант?
Как тут: Блокировка файла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2016, 17:37
Привет! Вот еще темы с ответами:

Запрет копирования файлов из сетевой папки - Сети
Дано: Сеть с доменом. Клиентские ПК. 1 ПК используемый в качестве хранилища файлов с расшаренной папкой (для хранения музыки,...

Запрет на создание папки с уже существующим именем - CMD/BAT
Добрый день! Есть bat файл для создания папки: @echo off chcp 1251 >nul echo Создание новой папки... echo Следующие имена...

Запрет на изменение данных - MS Access
Доброго времени суток. У меня такой вопрос: на форме лежит подчиненая таблица, возможно ли сделать так чтобы выделять строки можно было а...

Запрет на изменение поля - MS Access
Добрый день. Возникла проблема -- есть рабочая база данных, в которой, помимо прочего, есть поля с датой регистрации и фамилией...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.12.2016, 17:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru