ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  1551  : トラックバック  134

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

FAQ な質問にすべての user で扱う file はどこに配置すべき? というのがあります。この質問は目にするたび、user がその file を直接指定することがないのであれば、下記に配置するべきだと書いています。

OS Path
Vista %PROGRAMDATA%
XP %ALLUSERPROFILE%\Application Data

Vista 以降限定であれば、環境変数一つで定義されているので環境変数を利用してもよいですが、Vista より以前が対象に含まれる場合にはこれではまずいです。上記の場所は registry に設定されており、それを扱う API が整備されているので必ずそれを利用しましょう。

Library type Function Argument Minimum OS
Win32 SHGetFolderPath
SHGetSpecialFolderPath
CSIDL_COMMON_APPDATA
Win32 SHGetKnownFolderPath FOLDERID_ProgramData Vista
COM IKnownFolderManager::GetFolder FOLDERID_ProgramData Vista
.NET System.Environment.GetFolderPath CommonApplicationData
Automation Shell.Namespace CSIDL_COMMON_APPDATA
(&h23)
 

なお、対象 folder の ACL は Windows Vista では既定で下記のように構成されています。

Type Name Permission Inheritance
Allow NT AUTHORITY\System FILE_ALL_ACCESS OBJECT_INHERIT_ACE
CONTAINER_INHERIT_ACE
Allow BUILTIN\Administrators FILE_ALL_ACCESS OBJECT_INHERIT_ACE
CONTAINER_INHERIT_ACE
Allow CREATOR OWNER GENERIC_ALL OBJECT_INHERIT_ACE
CONTAINER_INHERIT_ACE
INHERIT_ONLY_ACE
Allow BUILTIN\Users GENERIC_READ
GENERIC_EXECUTE
OBJECT_INHERIT_ACE
CONTAINER_INHERIT_ACE
Allow BUILTIN\Users FILE_WRITE_DATA
FILE_APPEND_DATA
FILE_WRITE_EA
FILE_WRITE_ATTRIBUTES
CONTAINER_INHERIT_ACE

上記 DACL を簡単に説明すると、制限 user はすべての file を開いたり実行でき、 file を新規作成できるが、自分が作った file じゃないと更新や削除ができないということになります。実によく考えられてますね。

これが嫌なら、DACL を変更することになります。

ただ、安易に複数 user で共有する場所に配置するのは考え物です。その file が本当に複数 user 間で共有する必要があるか今一度考慮すべきでしょう。その file を直接指定することなく、すべての user で共有する必要があり、かつすべての user が更新する必要があるものって相当少ないと思いますよ。

また、対象の file の内容はすべての user が扱う必要があるもののみ格納されているでしょうか? すべての user が扱う必要の無いものが含まれているのであれば、それは分離し個々の user profile に格納するべきでしょう。

なお、user が直接その file を指定することがあるのであれば、"%ALLUSERPROFILE%" ("%PUBLIC%") 配下の "Documents",  "Downloads", "Music", "Pictures", "Videos" とかに格納すべきです。それぞれ対応した KNOWNFORDERID (CSIDL) があるので、環境変数など使わずに API で取得しましょう。

ちなみに、こちらは "NT AUTHORITY\INTERACTIVE" に十分な権限が与えられているので更新等で問題が生じることはほぼないでしょう。逆に厳しくしたいという要件が結構あるかも。

<参考>

投稿日時 : 2009年2月6日 4:24

コメント

# re: すべての user で扱う file の配置場所 2009/02/06 11:56 とっちゃん
SHGetSpecialFolderPath は、IE5 とともに、SHGetFolderPath に変更されました。
古いAPIなので、リンク不要です(このネタの問題に関しては特にw)。

というか、これを出すなら、NT4までさかのぼらんとねー。
になるんでw
#そういうAPIですからw


# Visual Studio Setup Project で %PROGRAMDATA% へ file を配置する方法 2009/02/06 13:17 ちゃっぴの監禁部屋
Visual Studio Setup Project で %PROGRAMDATA% へ file を配置する方法

# re: すべての user で扱う file の配置場所 2009/02/06 13:36 ちゃっぴ
> SHGetSpecialFolderPath は、IE5 とともに、SHGetFolderPath に変更されました。
> 古いAPIなので、リンク不要です(このネタの問題に関しては特にw)。
>
> というか、これを出すなら、NT4までさかのぼらんとねー。

そうですね。とっくに support 切れた OS 考慮しなければ必要ないです。
ちなみに、Vista 以降では SHGetFolderPath も SHGetKnownFolderPath に置き換えられています。

互換性を考慮するとまだまだ SHGetFolderPath を利用する局面が多いですが、SHGetKnownFolderPath でしか取得できない場所もあるので注意が必要ですね。

# Windows Installer で配置する resources の DACL を変更する方法 2009/02/06 19:21 ちゃっぴの監禁部屋
Windows Installer で配置する resources の DACL を変更する方法

# JfkhOGQjAMJaibpH 2014/08/07 11:02 http://crorkz.com/
Wu3QSi Major thankies for the blog article.Thanks Again. Much obliged.

# vsnONWvmIKcchTbKhb 2014/08/28 1:10 http://crorkz.com/
qZkEeG Hi, i believe that i saw you visited my site thus i got here to ???go back the want???.I am attempting to to find things to enhance my website!I assume its ok to make use of some of your ideas!!

# PGHXxzGUQtGvySmgSQB 2014/09/05 21:35 https://play.google.com/store/apps/details?id=com.
Hey there! I've been reading your weblog for a long time now and finally got the courage to go ahead and give you a shout out from Humble Texas! Just wanted to say keep up the excellent job!

# OHgsZtTuWjGcCVyW 2014/09/09 18:43 http://www.arrasproperties.com/
This website online is known as a stroll-through for all of the data you wished about this and didn't know who to ask. Glimpse here, and you'll definitely discover it.

# GJpXkbCvIVbGRtyo 2014/09/10 7:02 http://www.theboatonlinestore.co.uk/
Hi my loved one! I wish to say that this post is awesome, great written and come with almost all important infos. I would like to see extra posts like this .

# kynoMolDBcKogpM 2014/09/18 16:08 http://httphealthyheroes.info/story/22348
iDMEjB Wow, great blog.Much thanks again. Keep writing.

# re: すべての user で扱う file の配置場所 2016/02/23 12:07 leilei3915
http://www.airforce1-nike.fr
http://burberry.shopgioia.com
http://www.truereligion-outlet.in.net
http://www.michael--korsoutlet.us.com
http://www.adidas-trainers.me.uk
http://www.ralph-lauren.me.uk
http://www.mcmoutlet.us
http://www.chiflatiron.in.net
http://www.toms-outlet.cc

# michael kors factory outlet 2018/05/21 11:36 jinyizhixia
http://jaguars.jerseyssales.us.com
http://www.asicsrunning-shoes.us.com
http://www.niketrainerssale.org.uk
http://www.poloralph-lauren.me.uk
http://www.airjordanuk.org.uk
http://www.canadagooseuk.org.uk
http://www.raybansunglassesr.us.com
http://newyorkgiants.jerseyssales.us.com
http://www.vibramfivefingersshoes.us.com
http://www.handbagscoach.us.com
http://www.katespadestoreoutlets.us.com
http://www.michaelkorsoutletscom.us.com
http://www.ralphlaurenpolooutlet.co.uk
http://www.canadagooseoutlets.ca
http://www.valentino-shoes.us.org
http://www.poloralphlaurensuk.org.uk
http://www.oakleysunglasseswholesales.us.org
http://www.coachoutletfactoryonlinestores.us.com
http://www.manolo-blahnik.us
http://www.goldengooses.us.com


Post Feedback

タイトル
名前
Url:
コメント