Если Вы спрашиваете, как распечатать один символ на экран за один раз (обычно показываемый стиль 'хакера' в голливудских фильмах), следующий сценарий должен быть достаточным (он берет вход от stdin
).
В bash
:
#!/bin/bash
while IFS= read -r line; do
length="${#line}"
bol=1
for (( offset = 0 ; offset < length ; offset++ )); do
char="${line:offset:1}"
printf '%s' "$char"
if (( bol )) && [[ "$char" == " " ]]; then
continue
fi
bol=0
sleep 0.05
done
if (( length == 0 )); then
sleep 0.$(( RANDOM % 3 + 2 ))
else
sleep 0.$(( RANDOM % 7 + 3 ))
fi
printf '\n'
done
Или, более простая версия в C:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void) {
char buf[1];
int len;
while ((len = read(STDIN_FILENO, buf, sizeof(buf))) > 0) {
if (write(STDOUT_FILENO, buf, len) != len) {
perror("write");
return EXIT_FAILURE;
}
usleep(50000);
}
if (len != 0) {
perror("read");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
Если Вы хотели использовать dmesg
как введено, например:
dmesg | hollywood
Нет, это не хранит пароль.
То, что это действительно делает, сохранить, разблокировал/дешифровал ключ в памяти так, чтобы это могло использовать его для входа в систему, запрашивает добавление - необходимое основание, не предлагая пользователю разблокировать его каждый раз. Пока у Вас есть агент, выполняющий Вашу сессию, уязвимо для кого-то с необходимыми полномочиями (Ваш пользователь или корень) доступ к сокету, который говорит с агентом, и использующий любые ключи загружаются в Вашем агенте, чтобы подписать их собственные запросы и таким образом войти во что-либо, во что Ваш закрытый ключ получает Вас.