【问题标题】:Add bash script on linux to create users在linux上添加bash脚本来创建用户
【发布时间】:2011-10-14 19:49:21
【问题描述】:

我请求您帮助创建一个脚本以一键创建用户和密码

useradd client1 -M -s /bin/false
passwd client1

例如拥有一个新用户:

登录名:client1 密码:test

有可能吗?如果是,请问如何?

【问题讨论】:

    标签: php linux bash passwords


    【解决方案1】:

    好的,我找到了:

    第一个脚本创建用户:(add_user.sh)

    #!/bin/sh
    useradd $1 -M -s /bin/false
    

    第二个创建密码或更改密码:

    #!/bin/sh
    echo "$1:$2" | chpasswd
    

    你知道我如何从 php 文件中调用这个脚本吗?

    <?php
        Execution (add_user.sh) ? 
    ?>
    

    【讨论】:

      【解决方案2】:

      man useradd 会给你提示,我相信这是如何做到的:

      useradd [用户名] -d /path_to_home_directory -p [加密密码]

      现在,非常重要的是,useradd 的文档说 -p 参数期望密码 ENCRYPTED 由 crypt(7) 返回;因此,您需要做的是创建一个示例用户,例如使用密码“test”,然后打开 /etc/shadow 并从文件中复制并粘贴密码并在脚本中使用它。

      假设 /etc/shadow 中加密的“test”显示为“zxs1@431sa”,您的最终脚本应该是:

      useradd [用户名] -d /path_to_home_dir -p zxs1@431sa [输入]

      我认为应该这样做。

      参考:http://linux.die.net/man/8/useradd

      【讨论】:

        【解决方案3】:

        应该这样做:

        adduser client1 -p $(perl -e'print crypt("test", "aa")')
        

        【讨论】:

        • 不,-p 参数需要加密的密码,文档说。从我上面的答案中阅读参考。
        • 呵呵。我对 Perl 一无所知,但你在那里所做的很酷。我不知道这是可能的,但我想知道它会使用什么加密算法?肯定会起作用吗?
        • 它只是用盐“aa”生成密码“test”的密码。 salt 可以是任意两个字符,并且也将被转移到密码的前两个字符。
        猜你喜欢
        • 1970-01-01
        • 2020-07-21
        • 2019-12-17
        • 1970-01-01
        • 1970-01-01
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        相关资源
        最近更新 更多