windows - 所有 Windows 用户都可以编辑的建议文件位置?

标签 windows file permissions file-permissions shared-directory

我正在构建一个涉及的产品

  • 在本地计算机上缓存数据的 Windows 服务,
  • 用户进程读取该数据并写入他们自己的数据,
  • 服务反过来将该数据写回服务器。

我应该把数据文件放在哪里,这样它们才能被所有用户共享并可读/写?该软件将在桌面有时非常锁定的企业环境中运行,因此例如一些用户将没有对 C:\Program Files 的写入权限。

我不认为 C:\Documents And Settings\All Users\Application Data\是一个好的候选者 - 我认为默认情况下只有管理员和 super 用户在这里有写入权限。

我可以使用每个用户的 Application Data 文件夹,但这会有点麻烦,因为不同的人可以使用每台机器……所以如果只有一个共享位置会更简单。

我正在使用 C# .net 2005 进行开发,但这可能不太相关。

最佳答案

很遗憾,您别无选择。您必须(您真的必须)调用 SHGetSpecialFolderLocation 以获取到 c:\users\public\AppData 的路径(这是您在上面链接的文件夹的名称,但在 Vista 和可能的 Windows 7 上) 然后您必须在其中创建自己的应用程序文件夹。然后,您必须使用安全 API 修改所创建文件夹的 ACL。

系统上没有文件夹具有允许多个非管理员用户读取和写入相同文件的默认 ACL。

c:\users\public\AppData 是最接近的。在这里修改应用程序文件夹的 ACL 似乎是最好的方法。当然,一旦求助于 ACL 修改,该文件夹确实可以在任何地方创建。但这可能会让系统管理员大吃一惊,并导致奇怪的安全漏洞。

关于windows - 所有 Windows 用户都可以编辑的建议文件位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2098427/

相关文章:

C# - 将随机数生成到字段中

ruby-on-rails - Spork 配置错误? : `require' : no such file to load

python - 在文本文件中找不到字符串

c# - 使用预定义的用户名和密码以管理员身份运行应用程序

c# - 从 Active Directory 检索安全组的安全权限

将查询结果打印到文本文件时 MySQL 访问被拒绝

linux - 在装有 64 位英特尔第三代酷睿 i5 处理器的 32 位 Windows 7 上安装 64 位 CentOS

windows - 如果我设置了$VIM,还必须设置$VIMRUNTIME吗?

python - 如何在Python中使用左对齐文本写入.txt文件?

JAVA:从文本文件中获取特定字符串的内容