|
製 品
サポート
|
Inno Setup知識データベースInno Setup知識データベースには付属文書やFAQに含まれていない追加の情報を納めています。 トラブル: 普通のユーザーで実行した場合,自作のアプリケーションが自分のディレクトリに書き込めません。記事作成: 2003-10-25 19:05 GMT by Jordan Russell Windows 2000/XPでは,Program Filesディレクトリに関するセキュリティではユーザーグループのメンバーに読み込み権限しか与えません。このディレクトリ(と,デフォルトではそのサブディレクトリ)に書き込むには,ユーザーがPower UsersかAdministratorsグループに属している必要があります。 どうやってこのトラブルを回避できますか?アプリケーションが設定ファイルを保存する必要があるなら,Program Filesではなく代わりにApplication Dataに保存した方がよいでしょう。このディレクトリはユーザーによる書き込みが保証されています(Application Dataのパスは,SHGetFolderPath(shfolder.dll)やSHGetSpecialFolderLocationを呼び出すことで取得できます)。 代わりに,ユーザーによる書き込みが保証されているHKEY_CURRENT_USER\Software 以下のレジストリに設定を保存することもできます。 単に自作アプリケーションのセキュリティを変更するのではだめなのですか?そうすることもできますが,セキュリティ・ホールもできてしまいます。ユーザーグループやEveryoneにアプリケーションのディレクトリの書き込み権限を与えると,システム上のあらゆる人が権限昇格(場合によっては,管理者権限まで)を行うことが潜在的に可能になります。どうして,そうなるのでしょうか?How so? 全ての人がそのディレクトリに対する書き込み権限を与えられると,悪意のあるユーザーがあなたのプログラムのEXEファイルを選択されたトロイの木馬に置き換えることもありえます。次回,ユーザーがシステムにログオンし,このプログラムを実行するとそのトロイの木馬が活動を始めます。そのユーザーがたまたま管理者権限を持っていると,そのトロイの木馬はシステムを完全に制御してしまいます。 アプリケーションの開発者として,そのような潜在的セキュリティ・ホールの不正使用をさほど心配しないかも知れません。あなたはそのような潜在的セキュリティ・ホールの不正使用を過度に心配しないかもしれませんが,顧客の作業上にいるシステム管理者は心配していることを心に留めておいてください。さもなければ,システム管理者はユーザーに管理者権限ないしPower User権限を与えていたのかもしれません。 こんなことを言いましたが,データだけでプログラムファイルを含まないアプリケーションのサブフォルダのセキュリティを変更しても,ふつうは大丈夫です(たとえば,C:\Program Files\My Program\Data2"など)。これを実行するのに,詳しくは,FAQにあるパーミッションを変更するをご覧下さい。 Site contents Copyright © 1997-2004 Jordan Russell. All rights reserved.
|