我一直在谷歌搜索,并没有找到有价值的答案。
我有 98 名学生。我想为每个学生创建一个目录,让他们可以上传自己的文件。
除非我错了,否则看来我必须:
- 创建学生账户
- 将密码更改为强密码
- 重复98次!
我想:
1 - 避免如果可能的话创建帐户,即正确配置 vsftp 并避免useradd
(=避免步骤 # 6这教程)
2 - 找到一种方法将所有学生的密码更改为强密码(当然也可以将其打印出来以便单独邮寄)。
答案1
这是开始工作的模板。这是一个打印出命令的 perl 脚本,因此它不会执行任何操作,除非您决定突出显示命令并将其剪切/粘贴回控制台。
它负责生成用户帐户、设置密码以及可选地创建或不创建主目录等繁重工作。诀窍在于,为 adduser 命令创建密码时,密码必须采用 crypt3 格式。因此,如果您运行此脚本...
#!/usr/bin/perl
use strict;
my $SALT="jhgk^djfh*gkdh(jghkdhj786876erg98rhj44";
my $user="student";
my $pass="password";
my $encrypted;
my $studno=1;
my $studentstogenerate=20;
for ($studno;$studno<$studentstogenerate;$studno++) {
$pass='p'.int(rand(100000000000000));
$encrypted=crypt($pass, $SALT);
print "sudo useradd -p '$encrypted' $user$studno --no-create-home -G ftpgroup # actual pass ($pass)\n";
}
它将产生...
sudo useradd -p 'jhVU3sDajDruY' student1 --no-create-home -G ftpgroup # actual pass (p67228866189634)
sudo useradd -p 'jhViMGmmQ7d4.' student2 --no-create-home -G ftpgroup # actual pass (p20494616343373)
sudo useradd -p 'jhMr3VKBG2.ow' student3 --no-create-home -G ftpgroup # actual pass (p13933001113231)
sudo useradd -p 'jhqPnvxZCcQTg' student4 --no-create-home -G ftpgroup # actual pass (p45579091049416)
sudo useradd -p 'jhWqVroWUraWk' student5 --no-create-home -G ftpgroup # actual pass (p35233656259977)
sudo useradd -p 'jhlWOWyt0AKYE' student6 --no-create-home -G ftpgroup # actual pass (p39944882363487)
sudo useradd -p 'jhJd1AVEU/FE6' student7 --no-create-home -G ftpgroup # actual pass (p71192849790380)
sudo useradd -p 'jh1I6aDAkq3iA' student8 --no-create-home -G ftpgroup # actual pass (p41868457411791)
由于它使用随机数生成器,所以每次运行时密码都会不同。
因此在这种情况下student1
密码为p67228866189634
你可以用这个脚本通过改变变量来生成不同的输出。即使你不使用 perl 编程也应该很容易。
ftpgoup
注意:我已添加了您可能需要根据您使用的组进行更改的学生。