You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将UNIX的nobody与nogroup映射到Win32账户/SID?

UNIX "nobody"/"nogroup" 到 Win32 SID/账户的映射方案

核心映射关系

  • UNIX 的 nobody 用户 → Windows 的 匿名登录账户(Anonymous Logon),固定SID为 S-1-5-7
  • UNIX 的 nogroup 组 → Windows 的 Everyone 组,固定SID为 S-1-1-0

不依赖Cygwin的Win32实现方法

1. 生成预定义SID(推荐用CreateWellKnownSid)

Windows原生API CreateWellKnownSid 可直接生成系统内置的标准SID,无需依赖外部配置文件:

  • 生成nobody对应SID:指定WinAnonymousSid参数
  • 生成nogroup对应SID:指定WinWorldSid参数

示例C代码:

#include <windows.h>
#include <sddl.h>

// 获取对应nobody的匿名用户SID
BOOL GetNobodySID(PSID* pSid) {
    DWORD sidSize = SECURITY_MAX_SID_SIZE;
    *pSid = LocalAlloc(LPTR, sidSize);
    if (!*pSid) return FALSE;
    return CreateWellKnownSid(WinAnonymousSid, NULL, *pSid, &sidSize);
}

// 获取对应nogroup的Everyone组SID
BOOL GetNoGroupSID(PSID* pSid) {
    DWORD sidSize = SECURITY_MAX_SID_SIZE;
    *pSid = LocalAlloc(LPTR, sidSize);
    if (!*pSid) return FALSE;
    return CreateWellKnownSid(WinWorldSid, NULL, *pSid, &sidSize);
}

2. 将SID解析为账户名(用LookupAccountSid)

拿到SID后,可通过LookupAccountSid转换为可读的账户名:

#include <stdio.h>

void PrintAccountName(PSID sid) {
    TCHAR name[256], domain[256];
    DWORD nameSize = sizeof(name)/sizeof(TCHAR);
    DWORD domainSize = sizeof(domain)/sizeof(TCHAR);
    SID_NAME_USE sidType;

    if (LookupAccountSid(NULL, sid, name, &nameSize, domain, &domainSize, &sidType)) {
        _tprintf(_T("账户: %s\\%s\n"), domain, name);
    } else {
        _tprintf(_T("LookupAccountSid 失败,错误码: %lu\n"), GetLastError());
    }
}

3. 直接使用固定SID字符串

如果不需要动态生成,可直接用固定SID字符串,通过ConvertStringSidToSid转为SID结构:

PSID sid;
// 转换nobody对应的SID字符串
if (ConvertStringSidToSid(_T("S-1-5-7"), &sid)) {
    // 使用sid
    LocalFree(sid);
}
// 转换nogroup对应的SID字符串
if (ConvertStringSidToSid(_T("S-1-1-0"), &sid)) {
    // 使用sid
    LocalFree(sid);
}

注意事项

  • 匿名登录账户权限极低,和UNIX nobody的权限特性匹配;Everyone组包含所有用户(含匿名用户),符合nogroup作为无归属组的特性
  • Cygwin生成的SID是自定义标识符,不属于Windows原生体系,因此无法被LookupAccountSid识别,必须使用Windows内置的标准SID

内容的提问来源于stack exchange,提问作者Martin Wege

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:46:17