linux - 设置了具有 "sudo"Windows 权限的非 root 用户帐户

标签 linux windows bash command-line sudo

这个问题有点具体,我想做相当于以下代码的操作:

 # 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 的等效内容。

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

从我在 StackOverflow 上读到的内容来看,runas 实际上在 Windows 中相当于 Linux 的 sudo,这让我在必须使用 sudo 的第二段代码中更加困惑(就其值(value)而言,sudo 对我来说是一个无法识别的命令)。

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

最佳答案

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

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

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

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

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

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

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

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

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

关于linux - 设置了具有 "sudo"Windows 权限的非 root 用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29619761/

相关文章:

linux - 在 Linux shell 脚本中检索最近修改过的子目录?

c++ - Boost Process 库 asynch_read 处理程序未调用

linux - 在登录时运行一次性命令 (Linux)

bash - 从多个目录创建多个 tar.gz 存档

python - 如何在 Linux 下将 EDB(ms 交换存储文件)提取到 PST? (最好是Python)

linux - 如何读取 AWS ElasticBeanstalk 中设置的环境属性

c++ - 如何在 C++ 中使用 Windows DLL(后期绑定(bind))方法?

windows - 如何通过 WMI 浏览服务?

c++ - 如何从 C++ 使用 Windows API 获取应用程序的 CPU 使用率或磁盘使用率?

linux - 检查 Linux BAT 中的重复应用程序