useradd的使用隐窝密码生成(Useradd using crypt password gene

2019-06-23 17:44发布

我什么我以为工作是一个非常简单的脚本动态创建FTP用户使用“useradd的”有这个过程中,我熟悉的几个部分,以及一整天的研究没有得到我太远。 以下是我有:

password="pass"
pass=$(perl -e 'print crypt($ARGV[0], "wtf")' $password)
useradd -d HOME_DIR -s /bin/bash -g GROUP -p $pass -f -1 testing

笔记

  1. HOME_DIR和GROUP是占位符
  2. 我没有与家庭/ base_dir(-d,-b)或组(-g)的“useradd的”功能性问题

话题:

  1. 为什么我不工作密码生成的努力?
  2. 是/斌/庆典正确的外壳使用了一个纯粹的FTP用户,或者我会使用/ bin /虚假或不同的壳呢?
  3. 默认情况下,禁用useradd的,直到他们提供自己的密码,我该如何绕过这个帐户?
  4. 我不想使用passwd命令,因为它削弱我的,自动将生成的FTP帐户的能力,我找到了解决这个在这里 ,但我不明白的解决方案

让我知道如果我要对此都错了,或者什么,我试图做的是不可能的,或者如果我误导任何事情我都本文所述。 感谢您提供任何帮助。 :d

Answer 1:

关于密码生成:

32.3口令加密

  • 功能:字符* 隐窝为const char *键,为const char *盐

    crypt函数使用一个密码, 密钥 ,作为一个字符串,以及在下面描述,和的字符数组返回其与另一种盐开始打印的ASCII字符串。 据认为,鉴于该函数的输出,找到将产生输出,直到关键的原始值被发现猜测的值的的最佳方式。

    参数做了两两件事。 首先,它选择使用哪个算法中,MD5基于一个或基于DES酮。 其次,它使有人试图对包含许多密码,文件密码猜测的生活困难; 无 ,入侵者可以做一个猜测,运行crypt上一次,并将结果与所有的密码进行比较。 与 ,入侵者必须运行crypt为每个不同的盐一次。

    对于基于MD5算法,该应包括所述串的$1$ ,接着最多8个字符,由任一另一端的$或字符串的结尾。 隐窝的结果将是 ,接着通过一个$如果盐不与一个结束,随后22个字符从字母表./0-9A-Za-z到34个字符总共,向上。 在关键的每个字符是显著。

    对于基于DES的算法,该应包括从字母表两个字符./0-9A-Za-z ,和的结果crypt将是那些两个字符,接着从同一个字母,13 11更多的总额。 只有在关键的第8个字符是显著。

    基于MD5算法对使用密码的有效长度没有限制,并且稍微更安全。 因此,优选通过基于DES的算法。

    当用户第一次输入口令,盐应设置为一个新的字符串,它是相当随机的。 为了验证与先前调用地穴结果的密码,通过以前调用作为盐的结果。

根据您的系统,也有可能是河豚或SHA-2家族crypt S作为好,它可能是传统的DES是出于安全被禁用。 PAM可以在这里也添加其自身的复杂性。

     ID       |    Method
  -------------------------------
     1        |  MD5 (Linux, BSD)
     2a       |  Blowfish (OpenBSD)
     md5      |  Sun MD5
     5        |  SHA-256 (Linux, since glibc 2.7)
     6        |  SHA-512 (Linux, since glibc 2.7)

话虽这么说,在

root# useradd -d / -g users -p $(perl -e'print crypt("foo", "aa")') -M -N foo
user$ su - foo
Password: foo
foo$ ^D
root# userdel foo

作品在我的系统上就好了。


关于外壳:

/sbin/nologin是传统的login-禁用的用户。 你必须仔细检查你的FTP守护程序的配置,看看能否从FTP访问排除它们。


关于禁用的帐户:

从上面可以看出,工作对我来说,预期如果给一个工作密码。


关于其他的解决办法:

你难道不明白有关替代的解决方案是什么? 它似乎很清楚,我。

只是管“ username:password ”到“ chpasswd ”。


如果你想FTP-只有用户,我会建议使用支持虚拟用户如FTP守护glftpd , 纯-FTPD , ProFTPD的 , vsftpd的 ,居然......似乎所有的常见的事。 这样一来,一个FTP帐户不需要真实的系统帐户。



Answer 2:

如果你想创建“只有FTP”的用户,你应该看看RSSH为你的发行版安装RSSH,并设置外壳为“唯一的FTP”用户“的/ usr / bin中/ RSSH”

效果非常好



文章来源: Useradd using crypt password generation
标签: shell ftp passwd