首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从命令行快速地将许多用户添加到Ubuntu服务器?

如何从命令行快速地将许多用户添加到Ubuntu服务器?
EN

Server Fault用户
提问于 2009-10-01 14:44:52
回答 6查看 6.7K关注 0票数 2

我刚刚熟悉了adduser的基本用法。我想消除交互/提示。因为我经常要重新构建这台机器,所以我想编写这个进程的脚本,或者在最坏的情况下只复制和粘贴一个完整的语句,将用户添加到正确的组中,并在一个命令中设置密码。

类似于:

sudo加载项username1密码主组第二组,三元组“完全name1”

sudo加载项username2密码主组第二组,三元组“完全name2”

sudo加载项username3密码主组第二组,三元组“完全name3”

sudo加载项username4密码主组第二组,三元组“完全name4”

..。

sudo加载项username999密码主组第二组,三元组“完全name999”

EN

回答 6

Server Fault用户

回答已采纳

发布于 2009-10-01 14:53:21

在shell提示符处键入"man adduser“。它将为您提供关于如何使用adduser的文档。通常,man将为您提供任何CLI命令的文档。

但是你真的想要使用useradd而不是adduser

简言之:

代码语言:javascript
复制
useradd -c "Real Name" -m -g primarygroup -G secondarygroup1,secondarygroup2 username

哦,如果你想同时设置密码,你必须对密码进行预加密。我不断地重写这个小程序来执行Unix标准的盐加密:

代码语言:javascript
复制
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[]) {

        char *salt;

        if (argc < 2 || argc > 3) {
                fprintf(stderr, "Usage: %s string [salt]\n", argv[0]);
                exit(1);
        } else {
                if ( argc == 2 ) {
                        salt = argv[1];
                } else {
                        salt = argv[2];
                }
                printf("%s\n", crypt(argv[1], salt));
                exit(0);
        }
}

将此编译为crypt之后,您可以添加以下选项:

代码语言:javascript
复制
-p `crypt password`

理想情况下,您永远不希望在命令行中放置密码,因为它可以显示多个位置(ps输出、shell历史等等),但没有一个地方特别安全。

票数 4
EN

Server Fault用户

发布于 2009-10-01 17:03:44

您可以创建一个包含用户名列表等的文件,并使用newusers命令。它希望文件看起来像/etc/passwd格式,但有几个例外,一个是密码是纯文本(newusers加密)。

代码语言:javascript
复制
newusers userfile.txt

不过,它不能处理多个组。

票数 6
EN

Server Fault用户

发布于 2009-10-01 16:20:40

如果您需要添加这么多用户,并且需要不断地重建机器,那么可能需要使用木偶。这本身就是一个相当简单的方法,您可以从那里扩展到其他任务。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/70404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档