
Я выбрал /home/ для шифрования при установке Ubuntu. Теперь, возможно ли заставить locate
работать с зашифрованным разделом, как это?
решение1
Я и "запускаю locate (updatedb) при входе в систему", как упоминалось выше, и сохраняюмойчасть базы данных locate в моем зашифрованном $HOME.
export LOCATE_PATH="$HOME/var/mlocate.db"
а затем я индексирую файлы $HOME
с помощью
updatedb -l 0 -o $HOME/var/mlocate.db -U $HOME
Теперь у меня есть полный индекс, $HOME
но база данных не видна, пока $HOME
она не смонтирована и не расшифрована.
решение2
А как насчет запуска updatedb, когда ваша файловая система расшифрована, и попытки сопоставить переменные среды для ее чтения/записи?
После прочтения страницы руководства добавьте две переменные в ваш файл BASH RC.
man locate
echo "export LOCATE_PATH=$HOME/var/lib/mlocate/mlocate.db:$LOCATE_PATH" >> ~/.bashrc
echo "export DBPATH=$HOME/var/lib/mlocate/mlocate.db:$DBPATH" >> ~/.bashrc
Создайте указанный выше каталог и добавьте $username в группу mlocate.
mkdir -p ~/var/lib/mlocate/
sudo usermod -a -G mlocate $username
Выйдите из системы и войдите снова, чтобы посчитать пользователя в группе mlocate и получить новые переменные среды. Теперь, когда вы запустите,
updatedb -o $LOCATE_PATH
расшифрованные файлы теперь в базе данных locate? Или что вы сделали, чтобы это заработало или стало лучше?
Вы также можете добавить updatedb в crontab пользователя. Первый запуск:
crontab -e
И добавьте следующую строку:
0 12 * * * updatedb -o $HOME/var/locate
решение3
На самом деле невозможно обновить индекс базы данных без входа в систему. Вам следует войти в систему и выполнить команду updatedb.
Проверьте конфигурацию в /etc/updatedb.conf
. Удалите ecryptfs
из PRUNEFS
и, возможно, /home/.ecryptfs
из PRUNEPATHS
. Не забудьте запустить sudo updatedb
после.