Если вы можете изменить данные, чтобы использовать только разделение пробелами (или только ":"), то следующая программа awk может это сделать. Возможно, вам придется подкорректировать ее для улучшения макета.
BEGIN { i = 1; }
$1 != "" { C[$1] = $1; X[$1,i] = $2 ; next; }
{ i++; }
END {
asort(C);
for ( k in C ) printf " %8s\t", C[k];
printf "\n";
for ( j = 1; j <= i; j++ ) {
for ( k in C ) printf "%8s\t",X[C[k],j];
printf "\n";
}
}
Ожидается, что параметр, заданный для usermod --password
, будет зашифрованным паролем, возвращенным функцией crypt ()
функция. Если вы посмотрите в / etc / shadow
(при условии, что вы используете локальное хранилище паролей), вы увидите указанную вами строку, сохраненную как есть в записи myuser
...
Если вы действительно хотите использовать для этого usermod
, вы можете сгенерировать соответствующее значение, используя openssl passwd
:
usermod --password $(openssl passwd mypwd) myuser
или еще лучше
usermod --password $(openssl passwd -1 mypwd) myuser