我什么我以为工作是一个非常简单的脚本动态创建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
笔记
- HOME_DIR和GROUP是占位符
- 我没有与家庭/ base_dir(-d,-b)或组(-g)的“useradd的”功能性问题
话题:
- 为什么我不工作密码生成的努力?
- 是/斌/庆典正确的外壳使用了一个纯粹的FTP用户,或者我会使用/ bin /虚假或不同的壳呢?
- 默认情况下,禁用useradd的,直到他们提供自己的密码,我该如何绕过这个帐户?
- 我不想使用passwd命令,因为它削弱我的,自动将生成的FTP帐户的能力,我找到了解决这个在这里 ,但我不明白的解决方案
让我知道如果我要对此都错了,或者什么,我试图做的是不可能的,或者如果我误导任何事情我都本文所述。 感谢您提供任何帮助。 :d
关于密码生成:
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帐户不需要真实的系统帐户。
如果你想创建“只有FTP”的用户,你应该看看RSSH为你的发行版安装RSSH,并设置外壳为“唯一的FTP”用户“的/ usr / bin中/ RSSH”
效果非常好