Я гуглил вокруг и не нашел ценного ответа.
У меня 98 учеников. Я хочу создать для каждого студента каталог, в который они смогут загружать свои собственные файлы.
Если я не ошибаюсь, мне, вероятно, придется:
Я хотел бы:
1 - избегать , если возможно создания учетных записей, то есть просто правильно настраивать vsftp и избегать useradd
(= избегайте шага № 6 в этого учебника)
2 - найдите способ изменить пароли всех этих студентов на надежные (и, конечно, сможете распечатать их, чтобы отправить их по почте индивидуально) .
Это шаблон для того, чтобы начать игру. Это 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
, которые вам, возможно, придется изменить в зависимости от группы, которую вы использовали.