【问题标题】:Nonroot user account set up that has "sudo" privileges for Windows对 Windows 具有“sudo”权限的非 root 用户帐户设置
【发布时间】:2015-04-14 13:41:54
【问题描述】:

这个问题有点具体,我想做下面代码的等价物:

 # these commands must be run as root
 root@server:$ useradd -m -s /bin/bash elspeth # add user named elspeth
 # -m creates a home folder, -s sets elspeth to use bash by default
 root@server:$ usermod -a -G sudo elspeth # add elspeth to the sudoers group
 root@server:$ passwd elspeth # set password for elspeth
 root@server:$ su - elspeth # switch-user to being elspeth!
 elspeth@server:$

 elspeth@server:$ sudo apt-get install nginx
 elspeth@server:$ sudo service nginx start

我在打开命令提示符时单击“以管理员身份运行”,我假设它是“以 root 身份运行”。

我做了一些研究,发现像 net user (username) (pwd) 这样的命令,我认为这些命令是 Windows 等效的。现在首先,我很困惑的 sudo 组部分。我输入:

net localgroup sudo (user) /add

但是得到一个“指定的本地组不存在”。我是否要创建一个新的“sudo”组?

还有一部分代码将用户设置为“默认使用 bash”,我不知道/理解 Windows 等效项。

最后,对于第一段代码,有一个 su 命令。 runas 是等价的吗?我读到您可以通过 runas 从 Windows 上的命令提示符切换用户,但是我必须指定要运行的程序(在这种情况下是 bash 吗?)

根据我在 StackOverflow 上读到的内容,runas 实际上是 Windows 等效于 Linux 的 sudo,在我们拥有的第二段代码中,这让我更加困惑使用 sudo (对于它的价值,sudo 对我来说是一个无法识别的命令)。

作为参考和上下文,这是我正在使用的书以及处理此代码的确切摘录: http://chimera.labs.oreilly.com/books/1234000000754/ch08.html#_user_accounts_ssh_and_privileges

【问题讨论】:

  • 没有与该代码的大部分功能相当的特别接近的 Windows。为什么您尝试遵循为 Linux 设计的说明,而不是为 Windows 设计的说明?你真正想要达到什么目的? (例如:在 Windows 中没有任何东西相当于 sudo 组,不需要为用户分配特定的 shell,通常不需要类似 sudo 的命令等)

标签: linux windows bash command-line sudo


【解决方案1】:

您不能只将这样的命令翻译到 Windows 中; Linux 和 Windows 完全不同尤其是在用户管理方面

sudo 只是切换用户;它允许您以另一个用户身份运行命令。在大多数情况下,这样做是为了允许普通用户以 root 身份执行命令。

在 Windows 上,这是“以管理员身份运行”;或者如果您已经是管理员组的一员 - 那么您可以完全跳过此步骤。

第一行添加了一个用户,为他们分配了一个主目录和一个 shell。

在 Windows 中,您只需添加一个用户;因为在 Windows 中确实没有“shell”的概念——也就是说,默认情况下所有用户都使用 Windows 桌面环境——这是他们的“shell”。 shell 只是一个接受输入以执行的程序。大多数文本会告诉您cmd.exe(或 PowerShell)是“shell”,但严格来说并非如此。这些只是另一个执行命令的接口——主要的“shell”是 Windows 本身。

此外,默认情况下,所有用户都会获得一个主目录(除非他们是系统帐户)。

有关如何实际创建用户并将其添加到组的更多信息,请参阅PowerShell: Create Local User Account

你的最后两行是安装 nginx;在 Windows 上与该命令最接近的是 chocolatey,但它需要已经安装。

否则,对于 nginx,您只需下载 zip 并运行命令即可。

【讨论】:

  • 这确实很有帮助,谢谢。我只是需要澄清一下。这本书指出“在这些说明中,我假设您设置了一个具有'sudo'权限的非root用户帐户”它后来指出您应该将应用程序部署为非root用户(这就是我正在做的 - - 部署一个应用程序),所以我想遵循这本书的建议。那么“sudo”是否等同于以某个非root用户身份登录时简单地“运行”管理员?
  • 是的,但仅限于 Linux。您的非 root 用户还应该被特别授予使用sudo 执行命令的权限。通常,这是通过将您的非 root 用户添加到 wheel 用户组来完成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-16
相关资源
最近更新 更多