Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176

Сделать файлы текстовые доступными только из приложения

27.10.2025, 15:03. Показов 4212. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, как сделать, так, чтобы файлы текстовые были доступны только из программы, нельзя было бы их поменять просто так? Я видела через раздачу прав решения... но у меня нет filesystem. И потом не понятно, если создать нового пользователя и выдать ему права на файлы, запускать приложение от его имени... То пароль будет спрашиваться, что я не хотела бы.. И как прописать права из программы?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.10.2025, 15:03
Ответы с готовыми решениями:

Как сделать доступными функции из другого проекта инклудом .h файла
В одном решении Visual Studio 2010 есть два проекта, мне понадобилось включить функции и глобальные...

Как сделать компоненты базового класса доступными в производном классе, но недоступными вне классов?
Как сделать компоненты базового класса доступными в производном классе, но недоступными вне классов?

Файлы.Текстовые файлы
Считая t текстовым файлом (файлом типа text), ответить на следующие вопросы: А)Кроме текстовых...

47
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
28.10.2025, 12:57  [ТС]
Студворк — интернет-сервис помощи студентам
В моем возможно?
Миниатюры
Сделать файлы текстовые доступными только из приложения  
0
 Аватар для Pphantom
2491 / 1641 / 746
Регистрация: 17.03.2022
Сообщений: 5,373
28.10.2025, 13:04
Цитата Сообщение от Ната87Ната Посмотреть сообщение
В моем возможно?
Очевидно, что нет - версия компилятора на полгода старше нужного стандарта.
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
28.10.2025, 14:38  [ТС]
А по-другому у меня возможно это сделать? Без filesystem.
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,993
Записей в блоге: 14
28.10.2025, 14:41
Создать файл и задать ему право доступа для группы «все остальные» выполнение и запись
0
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
28.10.2025, 15:02
Цитата Сообщение от Ната87Ната Посмотреть сообщение
В моем возможно?
GCC 6 Release Series
Changes, New Features, and Fixes

C++

The default mode has been changed to -std=gnu++14.
C++ Concepts are now supported when compiling with -fconcepts.
-flifetime-dse is more aggressive in dead-store elimination in situations where a memory store to a location precedes a constructor to that memory location.
G++ now supports C++17 fold expressions, u8 character literals, extended static_assert, and nested namespace definitions.
G++ now allows constant evaluation for all non-type template arguments.
G++ now supports C++ Transactional Memory when compiling with -fgnu-tm.

Runtime Library (libstdc++)

Extensions to the C++ Library to support mathematical special functions (ISO/IEC 29124:2010), thanks to Edward Smith-Rowland.
Experimental support for C++17, including the following new features:
std::uncaught_exceptions function (this is also available for -std=gnu++NN modes);
new member functions try_emplace and insert_or_assign for unique_key maps;
non-member functions std::size, std::empty, and std::data for accessing containers and arrays;
std::invoke;
std::shared_mutex;
std::void_t and std::bool_constant metaprogramming utilities.
Thanks to Ville Voutilainen for contributing many of the C++17 features.
An experimental implementation of the File System TS.
Experimental support for most features of the second version of the Library Fundamentals TS. This includes polymorphic memory resources and array support in shared_ptr, thanks to Fan You.
Some assertions checked by Debug Mode can now also be enabled by _GLIBCXX_ASSERTIONS. The subset of checks enabled by the new macro have less run-time overhead than the full _GLIBCXX_DEBUG checks and don't affect the library ABI, so can be enabled per-translation unit.
Timed mutex types are supported on more targets, including Darwin.
Improved std::locale support for DragonFly and FreeBSD, thanks to John Marino and Andreas Tobler.
офы gcc.gnu.org сообщают что в 6-ой версии std::filesystem поддерживается эксперементально. По идее должно быть достаточно в файле *.pro
C++ (Qt)
1
2
3
CONFIG += c++17
 
LIBS += -lstdc++fs
в коде
C++
1
#include <experimental/filesystem>
возможно (я так понял у Вас Астра) нужно установить либу
Bash
1
~$ sudo apt install libstdc++fs
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
28.10.2025, 17:31  [ТС]
Что-то я такой либы не вижу
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38228 / 21160 / 4314
Регистрация: 12.02.2012
Сообщений: 34,774
Записей в блоге: 14
28.10.2025, 18:45
Цитата Сообщение от Ната87Ната Посмотреть сообщение
И как прописать права из программы?
- чтобы "прописать права", текущий пользователь должен иметь на это право...
0
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
29.10.2025, 10:28
Цитата Сообщение от Ната87Ната Посмотреть сообщение
Что-то я такой либы не вижу
а так?
Bash
1
2
3
~$ echo -e "#include <experimental/filesystem>\n#include <iostream>\n\nint main (void) { std::cout << std::experimental::filesystem::current_path() << std::endl; }" > main.c
~$ g++ main.c -lstdc++fs -std=c++17
~$ ./a.out
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
29.10.2025, 14:56  [ТС]
А так у меня нет прав доступа поискать файл :-)
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
29.10.2025, 15:03  [ТС]
Я через system с помощью chrome начала делать.
Но не пойму, как открыть файл от имени конкретного пользователя?
А еще как бы написать так, чтобы файл создавал пустой в случае, если его нет. А то сейчас если файл уже есть, то на команду touch в ответ - прав нет.
Вложения
Тип файла: rar HW_18_chmod.rar (103.5 Кб, 2 просмотров)
0
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
29.10.2025, 16:10
Цитата Сообщение от Ната87Ната Посмотреть сообщение
А так у меня нет прав доступа поискать файл :-)
какой файл? Вы команды выполнили которые я привел? Там не поиска файла, там создается main.c использующий std::filesystem, компилируется и запускается: на каком этапе какая ошибка возникает?

Если хотите system, то читайте про sudo
Цитата Сообщение от Ната87Ната Посмотреть сообщение
как бы написать так, чтобы файл создавал пустой в случае, если его нет
Bash
1
~$ sudo -u <username> touch <filename>
<username> пользователь чьи привелегии хотите использовать
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
31.10.2025, 16:53  [ТС]
Что-то если создавать файл через sudo -u touch ответ "Нет доступа". И если так же записывать в файл, считывает опять "Нет доступа"
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
31.10.2025, 17:11  [ТС]
Еще не пойму как строку-переменную записать в файл и как считать??
Что интересно если задать через VAR в консоли, то записывает, а из файла CPP -нет. Странно...
И как записать и считать от имени другого пользователя вообще не понятно... Чтобы не получить в ответ "нет доступа".
Миниатюры
Сделать файлы текстовые доступными только из приложения  
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6701 / 3115 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
01.11.2025, 16:19
Цитата Сообщение от Ната87Ната Посмотреть сообщение
А по-другому у меня возможно это сделать? Без filesystem.
Можете объяснить, что конкретно вам нужно?

Есть программа, которая может создавать / открывать / модифицировать содержание / сохранять текстовые файлы. Эти файлы лежат рядом с программой (или в другом месте - это не важно) и вы не хотите, чтобы пользователь мог их открывать вне вашей программы другим текстовым редактором? Я правильно вас понимаю?
0
1 / 1 / 0
Регистрация: 22.01.2018
Сообщений: 176
01.11.2025, 16:27  [ТС]
Да, именно так и просят.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6701 / 3115 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
01.11.2025, 16:54
Цитата Сообщение от Ната87Ната Посмотреть сообщение
Да, именно так и просят.
Тогда вся эта ахинея с правами не поможет. Пользователь в любом случае сможет удалить или модифицировать эти файлы (конечно, сперва он изменит права). На винде можно даже системные файлы удалить вплоть до порчи системы.

Ната87Ната, предлагаю просто сохранить текстовые файлы в каком-то малозаметном месте на диске. На винде, например, можно в C:\ProgramData. Даже можно скрыть файлы.

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

Ната87Ната, в линуксах не разбираюсь, но для винды есть еще одна экзотическая идея.
Допустим, программа, которая должна работать с текстовыми файлами, это один exe файл. В таком случае, текстовые файлы можно засунуть в exe и менять их содержимое в памяти. После закрытия программы, последняя создает свою копию и внедряет измененные текстовые файлы в exe и удаляет старую версию программы. То есть, текстовые файлы будут храниться в самой программе)
0
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
01.11.2025, 17:38
Цитата Сообщение от Royal_X Посмотреть сообщение
конечно, сперва он изменит права
конечно если у него есть права на изменение привелегий.
Ната87Ната, это учебное задание или реальный кейс? Если второе, учитывая что у вас ОС Astra Linux советую посмотреть в сторону мандатных привелегий.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6701 / 3115 / 1064
Регистрация: 01.06.2021
Сообщений: 12,024
01.11.2025, 18:18
Цитата Сообщение от Annemesski Посмотреть сообщение
конечно если у него есть права на изменение привелегий
не знаю как на линуксе, но на винде у него точно будут такие права! Ведь, на винде программа получает права от пользователя, который её запустил. Если программа умеет изменять права текстовых файлов, то значит и пользователь может.
Чтобы пользователь не мог менять права, установленные программой, то значит программа должна быть запущена не пользователем, а кем-то выше по "званию". Но я такой цирк не представляю, ведь по условию предполагается, что именно пользователь будет запускать и пользоваться программой.
0
 Аватар для Annemesski
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
01.11.2025, 18:31
Royal_X, туплю, Ваша правда.
0
 Аватар для Pphantom
2491 / 1641 / 746
Регистрация: 17.03.2022
Сообщений: 5,373
01.11.2025, 19:03
Цитата Сообщение от Royal_X Посмотреть сообщение
не знаю как на линуксе, но на винде у него точно будут такие права!
Под Linux будет то же самое по той же самой причине. Кроме этого, любые права в любом случае сможет изменить root, так что "никто" в постановке задачи означает, что права доступа тут ничем не помогут (в предположении, что автор задачи действительно понимал, что хочет, а в этом, честно говоря, есть сомнения).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2025, 19:03

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

Раздел диска доступный только одному приложению
Есть необходимость создания такого раздела на жестком диске который, в идеале не был бы виден...

Методы доступный только конкретному классу
Можно сделать так чтобы некоторые методы класса В были доступны только в пространстве методах...

Выражение должно быть доступным для изменения. Решение - только по-битово копировать?
Помогите плиз. Запутался голова не варит. char Name1 ={&quot;VakaKaka&quot;, &quot;MakaTaka&quot;}; char sName; ...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru