INIファイルのUser権限について – プログラミング – Home

INIファイルのUser権限について
 
通知
すべてクリア

[解決済] INIファイルのUser権限について


さわっち
 さわっち
(@さわっち)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

行き詰まってしまって質問させていただきました。
よろしかったら助けてもらえませんか?
<環境>
winXP VC++6.0 MFC (ダイアログベース作成中)
<対象>
VC++ラウンジ
<質問内容>
INIファイルの作成方法はわかりましたが、
User権限でも変更したいのです。
方法が見つかりません。
管理者でプロパティを変更するしかないのでしょうか?


引用未解決
トピックタグ
KING・王
 KING・王
(@KING・王)
ゲスト
結合: 21年前
投稿: 122
 

どのようにINIファイルを作成したのかなどがわからないですが、
単純に、INIファイルを作成したフォルダが、User権限でアクセスできないだけでは?

今、特にアクセス権限を設定していないフォルダに、WritePrivateProfileString( )を用い
て、
INIファイルを作成し、ファイルのプロパティを調べましたが、
everyでフルコントロールのようだったので。。。


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

ファイル名をフルパスで指定しないと Windows フォルダに放り込まれますからね。
User 権限ではここには書き込めないでしょう。


返信引用
さわっち
 さわっち
(@さわっち)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

どうもインストールしたときにそのフォルダがフルアクセスになっていなかったみたい
です。
そのフォルダにEveryoneを追加したらINIファイルも変更できるようになりました。

INIファイルの書き込みは以下の通りです。
AfxGetApp()->WriteProfileString(Section,PathName, g_strOpPathName);

そこで、INIファイルにアクセスするためと、このフォルダ対して
どんなユーザ(Guest権限のユーザ)からでも読み書き出来るような
セキュリティ設定を行いたいと思ったのですが、方法ってあるのでしょうか。
例えばセキュリティにEveryoneを追加するような関数とか。。。


返信引用
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

> 例えばセキュリティにEveryoneを追加するような関数とか。。。
そんな明示的なセキュリティーホール...。ありそうですけど。

writeできなかったら、テンポラリーなフォルダを何処かにつくって、そこに書き込んで
いくようにしてはいかがでしょうか。ユーザー毎のiniファイルが共通のiniファイルとは
別に生成される事になりますが、誰かが行った設定内容が他のユーザーにも影響するのは
どうかと思います。で、次回起動時にはユーザー毎のiniファイルがあるかどうかをまず
チェックして、なければ共通のiniファイルから読み込む、と。


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

> 例えばセキュリティにEveryoneを追加するような関数とか。。。

SetFileSecurity だと思う。

ところで、Microsoft としては、
\Documents and Settings\<UserName>\Application Data
とかに保存して欲しいんじゃないかな。
ちなみにこのフォルダの場所は SHGetFolderPath で取得できる(古い Windows との互
換性を考えるなら SHgetSpecialFolderLocation が吉。XP 以降なら
SHGetFolderPathAndSubDir がおすすめ)。


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

>> 例えばセキュリティにEveryoneを追加するような関数とか。。。

> SetFileSecurity だと思う。

> そんな明示的なセキュリティーホール...。

そだね。
この関数は User 権限じゃ使えないか。


返信引用
さわっち
 さわっち
(@さわっち)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

みなさんありがとうございます。
返答遅くなって申し訳ございません。

①権限の変更は管理者でないと変更が出来ない。
 なので、一度は管理者でソフトを起動しなくてはならない。
②INIファイルは共通で使用したい。
という点と、皆様のご意見を踏まえて、
管理者がフォルダのアクセス権を変更するように
仕様変更します。

>ところで、Microsoft としては、
>\Documents and Settings\<UserName>\Application Data
>とかに保存して欲しいんじゃないかな

私もこの意見には賛成です。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました