質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

671閲覧

設定ファイルが入ったフォルダをロックしたい

genk

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/11/07 14:43

編集2021/11/07 14:44

前提・実現したいこと

初心者です。
自分で作成したアプリをインストールすると、設定ファイルが入ったフォルダを作成するようにしています。
インストール時にそのフォルダにロックをかけて、ユーザーに中身を見れないようにしたいです。
アプリからは普通にアクセス出来て、かつ、自分はロックを解除できるようにしたいです。
ググってみましたが思ってるような内容がヒットしなくてここに質問させていただきました。
実現するにはどうすればいいのでしょうか?アドバイスを頂きたいです。また、参考になるサイトや書籍があれば教えてください。必要な情報があれば追記します。よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

c,c++
visual studio 2019

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2021/11/07 23:23

単なる感想になってしまうのですが、あなたのPCにだれかが「あなたのアクセスできないフォルダ」を勝手に作るとしたらそれを許しますか? ロックされているということは削除もできないのですよね。自分のPCなのに。 私だったら絶対イヤです。そんなことをするソフトはマルウェア認定です。 > ユーザーに中身を見れないようにしたいです。 暗号化とか、なんらかの改変防止の仕組みを入れるのではダメなのですか?
jimbe

2021/11/08 10:27

いわゆる初心者の方に多いように見受けられますが、全てをコントロールしようとしても無駄です。 過去に行った設定を勝手に矛盾した値に書きかえられないように等のつもりかもしれませんが、極端な話、ディスクが極一部壊れてそれがたまたま設定ファイルの一部だったという可能性すらゼロではないのです。 結局はどこかで設定ファイルが変わっていることに対する対応を行わなければなりません。
genk

2021/11/08 11:31

thkanaさんのおっしゃる通り、言われてみればそうですね。暗号化の方向で考えてみます。
guest

回答1

0

ベストアンサー

Windows においては各ファイルには「所有者」が設定されています。 あなたの手元にある適当なファイルをエクスプローラ上で「右クリック」「プロパティを選択」「セキュリティタブを選択」「詳細設定ボタンをクリック」とするとそのファイルの所有者が誰であるのか見ることが出来ます。 原則としてはあなたが起動したプログラムが生成したファイルはあなたが所有者です。 あなたが起動したプログラムはあなたの代理人としてあなたの権限でファイルを生成するのであって、プログラムごとに固有の権限があったりはしません。

ファイルの所有者が持つ権限はそのファイルの全てのアクセス許可を変更する権限です。 あなたはあなたが所有するファイルのアクセス許可を変更することが出来て、全てのアクセスを拒否するような設定も可能です。 あなた自身がそのファイルを読み書きできないように設定することも可能です。

Windows におけるアクセスコントロールは非常に細かく設定することも可能なのですが、その分だけ API が煩雑です。

  • ファイルのセキュリティ記述子 (SID) を取得
  • セキュリティ記述子に結びつけられたアクセスコントロールリスト (ACL) を取得
  • ACL にアクセス制御エントリ (ACE) を追加
  • SID に新しい ACL を設定
  • SID をファイルに設定

というような手順が必要です。 以前の設定を引き継ぐ場合には更に以前の設定を取り出す操作なども必要になってきます。

ファイル以外の様々なリソースへのアクセス許可の管理と統合されているので資料も入り組んでいて難解ですが公式な資料はマイクロソフトのサイトで提供されているので読んでみるとよいでしょう。 (正直言って私も説明できるほど細かい理解は出来ていないのであくまで必要な資料を探すとっかかりを提示することしかできません。)

ちなみに icacls というコマンドによっても制御が可能です。

基本理念自体がややこしいのでまずはエクスプローラでセキュリティ情報を見るなりいじるなりして考え方を理解しないと API 一覧を見ても何がなにやらわからないと思います。

投稿2021/11/08 08:16

SaitoAtsushi

総合スコア5466

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

genk

2021/11/08 11:33

詳しい説明をありがとうございます。自分のスキルでは無理そうなので暗号化の方向で考えてみます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問