AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 16886
Accepted
BIBD
BIBD
Asked: 2009-06-02 07:09:24 +0800 CST2009-06-02 07:09:24 +0800 CST 2009-06-02 07:09:24 +0800 CST

是否有相当于 Windows 的 SU

  • 772

有没有办法(当以管理员身份登录或作为管理员组的成员登录时)伪装成非特权用户?尤其是在 AD 环境中。

例如,在 Unix 世界中,我可以执行以下操作(以 root 身份):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

我需要在用户帐户上测试/配置某些内容,并且我不想知道他们的密码或必须重置它。

编辑:
runas不会削减它。理想情况下,我的整个桌面将成为用户等,而不仅仅是在 cmd 窗口中。

windows windows-server-2003 windows-xp active-directory
  • 7 7 个回答
  • 54703 Views

7 个回答

  • Voted
  1. Best Answer
    Orihara
    2009-06-02T07:50:36+08:002009-06-02T07:50:36+08:00

    我很确定如果没有该用户的凭据,就没有支持以其他用户身份运行的方式。这是一种不可否认的措施。有人不能说:“我没有做”,因为要么是他们做的,要么是有证书的人做的。第二次,他们必须向对方提供凭据。

    通常,在以其他用户身份登录时,我需要做的事情是使用远程协助基本上 RDP 进入会话,并让他们授予我控制权。然后我在他们看的时候做任何事情(大概,无论如何)。

    其他任何事情通常都可以使用 GPO/脚本来完成。

    • 20
  2. Sawta
    2012-03-29T08:02:10+08:002012-03-29T08:02:10+08:00

    我注意到很多其他人提到 runas 命令的变体以及您需要如何知道用户密码,这是真的,但我认为没有人安静地回答这个问题。“想要整个桌面将成为用户的等等,而不仅仅是在一个 cmd 窗口中”。这是我的做法:

    注意:我将把这个第一个命令提示符称为 CP1,以便稍后消除混淆。

    在您的管理员帐户下,打开命令提示符

    对于本地帐户

    runas /profile /user:computernamehere\username cmd
    

    对于域帐户

    runas /profile /user:domainname\username cmd
    

    或者我喜欢的方式

    runas /profile /user:username@domainname cmd
    

    注意:将打开一个新的命令提示符(CP2),这是您尝试登录的用户。

    打开 CP1 并输入:

    taskkill /f /IM explorer.exe
    

    打开 CP2 并输入:

    explorer.exe
    

    根据计算机的不同,如果用户以前从未登录过,它可能会为用户创建一个配置文件。您可以通过保持命令提示符窗口打开以供以后使用来节省自己的麻烦。

    当你完成你的工作时,只需反过来做同样的事情。

    在 CP2 类型中:

    taskkill /f /IM explorer.exe
    

    打开 CP1 并输入:

    explorer.exe
    

    您现在应该回到原来的管理员帐户。您可以通过点击 Windows 键并查找当前用户面板进行快速检查。

    希望这有帮助。

    • 18
  3. Evan Anderson
    2009-06-02T09:12:23+08:002009-06-02T09:12:23+08:00

    Windows 中没有内置机制来执行此操作。可以做到,但是你必须编写一些东西来做你想做的事情,而且你可能不得不使用未记录的 API。

    这里的海报之一,grawity,通过调用 CreateProcessAsUser() 正确,但您需要首先使用未记录的本机 API zwCreateToken 创建一个令牌。如果你杀死了 Explorer 并使用 CreateProcessAsUser() 启动了一个新的 Explorer 实例,我相当肯定你会得到你想要的。

    Microsoft 不会让您想做的事情变得容易,因为这不是他们希望您使用 NT 的方式。如果您需要以用户身份登录以解决他们的问题,在大多数情况下,您会以次优方式进行处理。

    您可以在不以用户身份登录的情况下更改用户的注册表(通过附加他们的注册表配置单元并以这种方式进行操作)。您可以在不以用户身份登录的情况下更改其用户配置文件中的文件。如果您需要“以用户身份”“设置电子邮件”或其他此类活动,您应该编写脚本或利用内置功能(组策略管理模板、首选项等)为您完成繁琐的工作。

    如果您必须这样做,请查看代码项目上的 RunAsEx。该代码应该让您对需要做什么有一个相当好的了解。我还没有尝试过这个程序,但它看起来一切都以正确的方式进行。

    • 7
  4. Doug Luxem
    2009-06-02T07:10:41+08:002009-06-02T07:10:41+08:00

    您可以在 Windows XP 及更高版本上使用以下命令:

    RunAs.exe
    

    命令行选项在此处可用。

    如果不知道用户密码,这将不起作用。由于安全标识符的加载方式,我不相信 Windows 中有一种方法可以在没有密码的情况下在用户帐户下进行操作。

    • 5
  5. user1686
    2009-06-02T07:30:02+08:002009-06-02T07:30:02+08:00

    (只是猜测。)如果您的帐户有SeCreateTokenPrivilege,您可以编写一个小程序来创建一个使用CreateProcessAsUser()或类似功能的进程...(但默认情况下甚至管理员都没有权限。)

    • 2
  6. Knox
    2009-06-02T07:46:13+08:002009-06-02T07:46:13+08:00

    尽管我对本网站上提到的一些 sudo 解决方案没有个人经验,但我强烈推荐由优秀的Aaron Margosis开始的非管理员。当您推出有限的用户时,这是一个巨大的帮助。我主要是跳了一些东西,因为其他人都在说使用 Runas。但是,我认为大多数或所有这些所谓的 sudo for windows 更多地处理提升而不是在没有密码的情况下充当另一个用户。

    • 2
  7. Booji Boy
    2009-06-02T09:47:42+08:002009-06-02T09:47:42+08:00

    http://live.sysinternals.com上的Process Explorer procexp.exe以受限用户身份运行(在文件菜单上),这将允许您使用当前凭据运行程序,但您的 ACL 被剥离为正常的用户(非管理员)用户。不是你想要的,但对测试很有用。

    • 0

相关问题

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve