#!/bin/bash # set +e set -x echo "Тест шифрования пароля по ГОСТ" source library/sh_lib.sh check=0 USER='testusr' USER_PASS='test123_PaSs!Word' ###################################### echo "1. Reset policy to default" /usr/bin/update-crypto-policies --set DEFAULT echo "---------------------------------------" ###################################### echo "Test 2. Files test" # cat /etc/crypto-policies/back-ends/opensslcnf.config | grep gost # данная команда должна возвращать пустое значение и результат выполнения echo $? = 1 cat /etc/crypto-policies/back-ends/opensslcnf.config | /bin/grep gost check=$(not_eq_is_success ${check} 0) # файл /etc/crypto-policies/back-ends/auth.config - пустой # файл /etc/crypto-policies/back-ends/auth.config - симлинк на пустой файл ls -l /etc/crypto-policies/back-ends/auth.config filename="/etc/crypto-policies/back-ends/auth.config" filesize=$(stat -Lc%s ${filename}) if [ $filesize -eq 0 ]; then echo "File ${filename} length == 0 -- OK" else echo "File ${filename} length == ${filesize} -- Error, should be empty" let check+=1 fi # cat /etc/pam.d/password-auth | grep gost данная команда должна возвращать пустое значение и результат выполнения echo $? = 1 cat /etc/pam.d/password-auth | /bin/grep gost check=$(not_eq_is_success ${check} 0) # cat /etc/pam.d/system-auth | grep gost данная команда должна возвращать пустое значение и результат выполнения echo $? = 1 cat /etc/pam.d/system-auth | /bin/grep gost check=$(not_eq_is_success ${check} 0) echo "---------------------------------------" ###################################### echo "Test 3. Set GOST policy" /usr/bin/update-crypto-policies --set DEFAULT:PAM-GOST check=$(eq_is_success ${check} 0) echo "---------------------------------------" ###################################### echo "4. Add user, set password" /usr/bin/update-crypto-policies --show useradd ${USER} check=$(eq_is_success ${check} 0) # ВНИМАНИЕ! # chpasswd не поддерживает PAM-профили - см. https://inferitos.asproagile.ru/_module/agile/view/issue/1063 # поэтому здесь пока нельзя использовать эту команду # chpasswd <<< "${USER}:${USER_PASS}" echo "${USER_PASS}" | passwd "${USER}" --stdin check=$(eq_is_success ${check} 0) echo "---------------------------------------" ###################################### echo "5. Check is password encrypted" passwd -S ${USER} | grep "GOST Yescrypt" check=$(eq_is_success ${check} 0) echo "---------------------------------------" echo "Cleanup. Remove user, reset policy to default" /usr/bin/update-crypto-policies --set DEFAULT userdel -f -r ${USER} echo "---------------------------------------" check_test_status ${check} "$0" exit ${check}