【问题标题】:Can any user access the %APPDATA% folder任何用户都可以访问 %APPDATA% 文件夹吗
【发布时间】:2013-08-12 01:10:32
【问题描述】:

任何用户都可以访问 %APPDATA% 文件夹吗?还是只有管理员才能读取和访问该目录?另外,从 2k 到 Windows 7 的不同 Windows 平台访问此目录的权限是否不同?

【问题讨论】:

  • 问题与C++或WINAPI无关。重新标记。

标签: windows


【解决方案1】:

您可以在命令提示符下使用icacls 工具查看 %APPDATA% 的权限。这是我机器上的样子:

C:\Users\davidp>icacls %APPDATA%
C:\Users\davidp\AppData\Roaming NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
                                BUILTIN\Administrators:(I)(OI)(CI)(F)
                                MACHINE09\davidp:(I)(OI)(CI)(F)

Successfully processed 1 files; Failed processing 0 files

这意味着只有我、管理员和系统本身才能看到该文件夹​​。如果您在其他用户可以看到的文件夹上运行它,您会看到如下内容:

C:\Users\davidp>icacls c:\
c:\ BUILTIN\Administrators:(F)
    BUILTIN\Administrators:(OI)(CI)(IO)(F)
    NT AUTHORITY\SYSTEM:(F)
    NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
    BUILTIN\Users:(OI)(CI)(RX)
    NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(M)
    NT AUTHORITY\Authenticated Users:(AD)
    Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)

Successfully processed 1 files; Failed processing 0 files

您可以看到BUILTIN\Users 组可以看到c:\ 文件夹(如您所料)。

编辑

我不确定 %APPDATA% 变量本身在 Windows 历史中可以追溯到多远。我建议直接检查。在旧系统上,cacls 命令是icacls 的前身。无论如何,在基于 Windows NT 的操作系统中,始终存在一个配置文件区域,只有用户和管理员才能看到。

【讨论】:

  • %APPDATA% 变量可以追溯到 Windows Vista,在此之前,用户信息存储在文档和设置中
  • 正如 jmohr 提到的那样,%APPDATA% 也存在于 Win XP 上,类似于 C:\Documents and Settings\martineau\Application Data。
【解决方案2】:

%AppData% 是一个用户特定的路径。是的,任何用户都可以访问 %appdata%,但是它将为每个用户转到不同的目录。只有管​​理员才能读取其他用户的应用数据。

努力在你的机器上实际访问 %appdata%,并查看它转换成的路径。你明白我的意思吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    相关资源
    最近更新 更多