Вы можете определить, аутентифицирован ли пользователь уже с помощьюsudo -vn 2>/dev/null
Если это не так, вы можете использовать следующее, чтобы запросить пароль и передать его в sudo
.
printf '%s\n' "$(dialog --output-fd 1 --passwordbox "Enter password:" 10 30)" | \
sudo -Svp ''
--output-fd 1
сообщает dialog
о выводе наSTDOUT
printf
используется для добавления новой строки к входным данным, что требуется дляsudo -S
sudo -p ''
использует ''
в качестве запроса пароля, скрывая его Если вы хорошо относитесь к сохранению вывода в переменной, вы можете просто printf '%s\n' "${SUDOPWD}"
сделать это
Да, клоны будут зашифрованы. И да, есть скрытый недостаток, помимо того, что все они используют общую парольную фразу для входа (, которую вы обычно вводите при входе в систему и которую вы можете изменить ):, они также будут использовать общую парольную фразу для монтирования (, т.е. главный ключ шифрования, который вы обычно не видите и с которым не взаимодействуете, и который вы не можете изменить без повторного -шифрования ). Это означает, что даже после того, как пользователи изменят свои парольные фразы, любой пользователь навсегда сможет расшифровать данные любого другого пользователя.