Запускайте сценарий bash ТОЛЬКО после того, как пользователь вошел в систему на компьютере один раз, затем разрешите запуск сценария при каждой попытке входа в систему. - PullRequest
1 голос
/ 26 февраля 2020

Я пишу распознавание лиц для входа в Ubuntu. В моем нынешнем виде у меня есть скрипт bash, который вызывается всякий раз, когда делается попытка войти в систему ie на экране входа в Ubuntu. Этот сценарий вызывает сценарий python3, который возвращает успех / неудачу в зависимости от того, распознано ли лицо - здесь все хорошо

Моя текущая проблема заключается в том, что сценарий не работает, пока я не войду и не введу xhost + , Я провел исследование по этому вопросу и решил, что могу сделать одно из двух, чтобы решить эту проблему.

1 - отключить распознавание лиц при первой попытке входа в систему

2 - Жесткий код xhost + в / etc / profile (плохая идея)

Главный вопрос здесь заключается в том, существует ли какой-либо способ отслеживания входа пользователя в систему и скрытия сценария до тех пор, пока это не произойдет? ie Как и большинство смартфонов, разрешить аутентификацию по паролю только при первом входе в систему?

bash Сценарий, который я написал ниже



#xhost +
export DISPLAY=:0

var1="success"
var=$(/path/to/file/pam_detect.py)

exit_status=$? # This grabs the exit status of the python script we just ran
if [ "${exit_status}" -ne 0 ]; # checks to see if exit status is anything other 
then
    echo "exit ${exit_status}"
    exit 1 # exit status 1 on python script fail (exit 1)
fi

if [ "$var" == "$var1" ]; then
    #echo "exit 0"
    exit 0
else
    #echo "exit 1"
    exit 1
fi

Это называется my my / etc / pam. Файл d / common-auth, использующий pam exe c .so (который вызывается при попытке пользователя войти в систему)

...