Условие Bash, которое не запускается в первый четверг месяца

I believe this corresponds to a public/private key authentication with the server.

Выполняется одна аутентификация по паролю и одна аутентификация по открытому ключу.

I think this is vulnerable to man-in-the-middle attacks.

Если правильно проверить ключ хоста, он не будет уязвим для MitM.

I think the second command is what essentially the command ssh-copy-id does.

Да, но ssh-copy-idтакже выполняет другие проверки, чтобы убедиться, что разрешения и контексты selinux верны. Также он делает это по сети и использует аутентификацию password.

The option -i tells however where to find a private key which I didn't do before.

Да. Но /home/login_server/.ssh/id_rsaпо умолчанию.

Can I assume that this is a certified version of the above?

Нет. Это просто копирование файлов. Если домашний каталог монтируется каким-либо другим методом (NFS, Samba или опять же sshfs), вы полагаетесь на безопасность этих протоколов. Сертификаты — это нечто другое, как описано, например, здесь:

https://ef.gy/hardening-ssh

1
10.10.2019, 16:40
1 ответ

Использование bash-теста:

if [[ "$(LC_TIME=C date +%A)" == 'Thursday' && "$(date +%d)" -le 7 ]]; then
    exit 1
fi

Примечание. :Функционально это ничем не отличается от теста в вашем вопросе.

Просто добавьте это в начало скрипта. Если это первый четверг месяца, скрипт сразу закроется, в противном случае он запустится.

В качестве альтернативы вы можете поместить его прямо в запись crontab, что-то вроде:

0 1 * * 1,4 [[ "$(LC_TIME=C date +\%A)" == 'Thursday' && "$(date +\%d)" -le 7 ]] || /path/to/script.sh
0
28.01.2020, 00:00

Теги

Похожие вопросы