Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
1

Права доступа к файлам

09.12.2018, 14:33. Показов 3000. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, столкнулся с такой неприятностью под W-7: создал программу, в ней есть модуль, формирующий ini-файл, и прога стартует, начиная с чтения сохраненных настроек.

Все достаточно банально и штатно, как я понимаю. ini-файл находится в программном директории самой проги (на системном диске) - все как обычно... VB.NET, как я понимаю, сами мелко-мягкие создали для написания полноценных программных проектов, однако, как оказалось, как только я запускаю свою прогу самостоятельно (не из среды VB.NET), система отказывает ей в доступе к ini-файлу (ни для записи, ни для чтения!).
((

И как же такое побороть в самом проекте (а не сторонними методами)? Ясное дело, если ее запустить с правами админа - все ОК, но это - неприемлемый вариант!

Добавлено через 4 минуты
sorry, поспешил с созданием темы: уже существует...
https://www.cyberforum.ru/post11673560.html
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2018, 14:33
Ответы с готовыми решениями:

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

Права доступа
Ребят, как получить права на файл или папку ProgrammFiles! В манифесте программы вроде бы поставил...

Права доступа к файлам ubuntu
При создании через терминал файла права на него (для других юзеров, груп) установлены по умолчанию....

Права доступа к папкам и файлам
Вкратце ситуация такова: получил в системе после неоднократных переустановок три раздела (кроме...

15
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,340
Записей в блоге: 1
09.12.2018, 15:30 2
gva62, насчет запрета доступа на чтение ты по моему преувеличиваешь. Проблемы с записью можно решить выдав соответствующие NTFS права на файл конфигурации.
0
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
09.12.2018, 16:19  [ТС] 3
ну, я описываю то, что вижу, к сожалению ((

Речь о том, что автоматом не получается (мы же никогда не конфигурируем с точки зрения прав доступа никакие файлы программных пакетов: поставили прогу и пользуемся, а это уже ее дело, создает ли она свои файлы или нет). Вот и возникает вопрос: почему "продукт от Microsoft" (созданный в разработанной ими де среде) не хочет создавать и использовать собственные вспомогательные файлы в своем же собственном программном директории?
=========

Я, походу, попробовал воспользоваться советом Yury Komar (из его темы) и подредактировать манифест - с тем же результатом!: программа таки стартует с этим "требованием" (и иконка ее со щитом), но не хочет делать этого тихо!..
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,340
Записей в блоге: 1
09.12.2018, 16:47 4
gva62, доступ к файлам контролирует Операционная Система. .NET этим не занимается, а только предоставляет инструменты для работы с файлами которые нужно уметь применять.

Цитата Сообщение от gva62 Посмотреть сообщение
Вот и возникает вопрос: почему "продукт от Microsoft" (созданный в разработанной ими де среде) не хочет создавать и использовать собственные вспомогательные файлы в своем же собственном программном директории?
Потому что права на каталог не разрешают запись. .NET тут ни при чем.

Цитата Сообщение от gva62 Посмотреть сообщение
мы же никогда не конфигурируем с точки зрения прав доступа никакие файлы программных пакетов: поставили прогу и пользуемся
Это потому что необходимые права доступа назначаются во время установки (если есть такая необходимость).

Цитата Сообщение от gva62 Посмотреть сообщение
Я, походу, попробовал воспользоваться советом Yury Komar (из его темы) и подредактировать манифест - с тем же результатом!: программа таки стартует с этим "требованием" (и иконка ее со щитом), но не хочет делать этого тихо!
Налицо очередное непонимание инструмента. Запуск с правами администратора не может "работать тихо". Это необходимо для безопаности. Если любое приложение сможет молча, без подтверждения пользователя запуститься с правами администратора, то это делает данный механизм полностью бесполезным.

Цитата Сообщение от gva62 Посмотреть сообщение
ну, я описываю то, что вижу, к сожалению
Опишите подробнее. Где именно находится приложение и файл который она хочет прочитать/изменить. Покажи код который делает чтение и запись. Покажи исключения которые возникают при чтении и записи.
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
09.12.2018, 17:59 5
gva62, а почему бы не запускать программу из каталога, где не требуются права администратора для записи?
0
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
09.12.2018, 19:18  [ТС] 6
Ребята, все предложения по обходу проблемы не решают ее саму (они достаточно прозрачны: раз нет доступа на системном диске - грузись откуда-то еще), но я обсуждаю возможность создания нормального полноценного программного продукта, не нуждающегося в костылях по отношению к операционке, в которой его запускают...

Это как-то странно, вообще-то, что Microsoft вставляет палки в колеса своему же детищу (хотя, от этих красавцев и ни такое можно ожидать!). И если разработчики ОС ничего лучшего не придумали, кроме достающего своей назойливостью только самих пользователей UAC'а, то можно было бы от них же ожидать и средств настройки приложений, лежащих "под рукой" (а не где-то там, на просторах инет'a), в самой среде для создания приложений, разработанной ими же, не так ли?
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,340
Записей в блоге: 1
09.12.2018, 19:44 7
gva62, решение без костылей существует - не надо писать в файл рядом с exe. Для таких файлов есть профиль пользователя. Роуминговый или локальный.
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
09.12.2018, 19:47 8
gva62, Вам написал OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Налицо очередное непонимание инструмента. Запуск с правами администратора не может "работать тихо". Это необходимо для безопаности. Если любое приложение сможет молча, без подтверждения пользователя запуститься с правами администратора, то это делает данный механизм полностью бесполезным.
Хотите запуск и доступ без помех? Напишите этот код в программе и выполняйте его при первом запуске.
либо если вы хотите
Цитата Сообщение от gva62 Посмотреть сообщение
создания нормального полноценного программного продукта
Напишите для него инсталлятор и деинсталлятор - в которых и будут происходить нужные настройки системы в отношении вашего "нормального" приложения.
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
09.12.2018, 22:05 9
gva62, у вас какое-то странное суждение, то есть, microsoft должны были всем приложениям, написанным в vc давать полный доступ к системе?
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
10.12.2018, 07:31 10
gva62, Если вы не кидаете свою программу непосредственно в корень системного диска либо в системную папку, то никаких проблем с чтением и записью файла не возникает. (Windows 7 x64)
например "C:\1\myprogram.exe" - будет прекрасно работать с файлом находящимся в той же директории "C:\1"
Специально для вас проверил.
Так что не понятно чего вы хотите?
Если конечно не собираетесь писать вируса
0
1496 / 1044 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
10.12.2018, 08:25 11
Цитата Сообщение от bbbw Посмотреть сообщение
например "C:\1\myprogram.exe" - будет прекрасно работать с файлом находящимся в той же директории "C:\1"
очень размытое утверждение, есть администрирование ОС и политика прав
1
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
10.12.2018, 15:05  [ТС] 12
Отвечаю для всех сразу: считаю свои суждения не странными, а вполне логичными:
- на системном диске есть разделы (если из присутствующих в дискуссии кто не знает) под названием "Program Files" и "Program Files (x86)"
- и как раз именно потому, что я не пишу никаких вирусов, совершенно естественно разместить новую прогу (пусть и написанную на VB.NET) именно туда, где ей и место... (а не бегать, как бедному родственнику, по ресурсам РС в поисках "подходящего местечка" для "недо-программы")!

Более тут пояснять нечего: все разделились на тех, кто считает, что "мелкомягкие никому ничем не обязаны" и на тех, что совсем даже наоборот (я отношусь к последним, однако, это - уже оффтоп, как я понимаю, и потому прения об этом считаю неуместными...)
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
10.12.2018, 15:10 13
gva62, как я вам уже говорил - единственный путь - это понижать уровень UAC в самой системе или как выше посоветовали выдать соответствующие NTFS права на файл конфигурации.
1
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,340
Записей в блоге: 1
10.12.2018, 15:20 14
Лучший ответ Сообщение было отмечено gva62 как решение

Решение

Цитата Сообщение от Yury Komar Посмотреть сообщение
это понижать уровень UAC в самой системе
Так точно делать не стоит. Это решение локальных проблем глобальными средствами которое понижает безопасность системы.

Добавлено через 5 минут
gva62, никто и не называл ваши рассуждения нелогичными. Они просто неверные. Потому что любая программа работает под управлением ОС и вынуждена следовать её правилам. Таким правилом в данном случае является запрет записи в папку Program Files без elevated прав. Размещать программу в папке Program Files это разумеется нормальное решение. А вот изменяемые файлы лучше размещать в профиле пользователя. Это такое же стандартное решение как и размещение программы в Program Files.
3
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
10.12.2018, 15:39 15
gva62, Вместо того чтобы возмущаться вы бы хоть постарались понять то что вам пишут.
Цитата Сообщение от gva62 Посмотреть сообщение
- на системном диске есть разделы (если из присутствующих в дискуссии кто не знает) под названием "Program Files" и "Program Files (x86)"
Вас не смущает что программу в этот раздел помещает установщик программы?
Цитата Сообщение от gva62 Посмотреть сообщение
совершенно естественно разместить новую прогу (пусть и написанную на VB.NET) именно туда, где ей и место...
А написать в программе то, что совершенно естественно - религия не позволяет?
Вам написали все варианты возможных действий:
1.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
gva62, доступ к файлам контролирует Операционная Система. .NET этим не занимается, а только предоставляет инструменты для работы с файлами которые нужно уметь применять.
2.
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
gva62, а почему бы не запускать программу из каталога, где не требуются права администратора для записи?
3.
Цитата Сообщение от Yury Komar Посмотреть сообщение
gva62, как я вам уже говорил - единственный путь - это понижать уровень UAC в самой системе или как выше посоветовали выдать соответствующие NTFS права на файл конфигурации.
Выбирайте любое. Других вариантов НЕТ!
Если вы обратите внимание, на уже установленные у вас программы то вы может быть в конце концов поймете, что любая программа делает что то из перечисленного.

ЯП пишите - хоть в VS хоть в блокноте сразу HEX набирайте, РАЗНИЦЫ НЕТ! - РЕЗУЛЬТАТ ТАКОЙ-ЖЕ БУДЕТ!
Либо программа регистрируется в реестре и имеет права администратора на свой каталог, либо
(как стоит отметить поступает большинство игр) - создавать,хранить и изменять файлы в папке "C:\Users\Имя пользователя\Documents".
Не бывает больше никак, поймите это в конце концов пожалуйста
2
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
11.12.2018, 13:16  [ТС] 16
Благодарю всех за конструктивную беседу! ))

Пожалуй все Вы по-своему правы: политика OS изменилась => мы вынуждены следовать новым Правилам (и подстраиваться под новые же условия), согласен...
0
11.12.2018, 13:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2018, 13:16
Помогаю со студенческими работами здесь

Не работают права доступа к файлам в Linux
Я создаю в каталоге пользователя bash-сценарий, который при выполнении, например, выводит текст...

Права доступа. Не могу получить доступ к файлам/папкам
Всем доброго времени суток госпада. Проблема заключается в том что не открываются файлы. ОС WIN...

Как настроить разные права доступа пользователей к файлам и папкам?
Всем привет я в Linux mint Новичек, нужна помощь опытных юзеров!)) Поднимаем сервер на Линуксе, и...

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru