Если у Вас есть аппаратные средства (или более точно встроенное микропрограммное обеспечение, т.е. BIOS) поддержка зашифрованных дисков, то можно зашифровать полный диск со встроенным микропрограммным обеспечением. Существуют оборотные стороны к выполнению этого: нет многих компьютеров вокруг того шифрования диска поддержки, и оно связывает Вас с конкретным встроенным микропрограммным обеспечением (или хуже, если Ваш компьютер имеет TPM, и ключ шифрования находится в TPM, оно связывает Вас с этой конкретной материнской платой, если Вы не создали резервную копию ключа шифрования хранилища).
Если операционная система делает шифрование, то должно быть небольшое пространство на диске, который не шифруется, где начальные части операционной системы хранятся. Общая конфигурация с Linux должна иметь отдельный открытый текст /boot
раздел, и зашифровать любой раздел. “Полное шифрование диска” является чем-то вроде неправильного употребления: это обычно используется для значения “полного шифрования объема”, где объем обычно является разделом, а не диском. Полное шифрование диска состоит в том, когда Вы не шифруете каждый файл (или по крайней мере дерево каталогов) отдельно.
В соответствии с Linux, стандартный инструмент для полного шифрования диска является dmcrypt. Это доступно во всех основных дистрибутивах и интегрированное во многих установщиках.
На основе ответа Mel Boyce вот то, что работало на меня. Это основано на KDE. Но я также протестировал его с Zenity и теми же работами подхода. Это - в основном то же самое рекомендуемый Mel Boyce, но с несколькими тонкими настройками, чтобы заставить это работать на меня. Я не удаляю файл updateNotification.txt, например. И я не использую printf.
updater сценарий включает это:
DATE_STAMP=` date`
echo "\t***The software has been updated to version ${LATEST} on ${DATE_STAMP}***"
echo "The software has been updated to version ${LATEST} on ${DATE_STAMP}. Please close and reopen the program if it is current running. If you have any issues or questions, please write us at support@example.com. Thank you." > /home/$USERN/.updateNotification.txt
Затем у нас есть сценарий, работающий в/home/$USERN/.kde/Autostart/updateNotificationChecker.sh
#!/bin/bash
while true; do
if [[ -s ~/.updateNotification.txt ]]; then
read MSGFE < ~/.updateNotification.txt
kdialog --title 'The software has been updated' --msgbox "$MSGFE"
cat /dev/null > ~/.updateNotification.txt
fi
sleep 300
done
exit 0
Попытайтесь добавить что-то как следующее к Вашему ~/.xinitrc
(или ~/.xsession
если Вы используете менеджера по входу в систему):
while true; do
if [[ -a ~/.messages ]]; then
zenity --info --text="$(printf "%q" $(cat ~/.messages))"
rm ~/.messages
fi
sleep 10
done &
Я не протестировал это с zenity, поскольку у меня нет его, и я принимаю это .xsession
работы как ожидалось - я никогда не использовал менеджера по входу в систему.
while
/done
блок выполнится неограниченно долго с десятисекундной задержкой между проверками ( sleep 10
часть). Каждый раз существует проверка, if
защита успешно выполняется, если существует непустой названный файл .messages
в homedir пользователя. На успехе содержание файла читается в zenity, и файл удален.
Я не взволнован с printf
рвота, но это должно быть прекрасным.
Содержание, которое помещается в ~/.messages
должен быть перенаправлен от крона, и необходимо будет удостовериться, что Вы изменяете владельца и группу файла соответственно. Возможно, что-то как:
10 * * * * /usr/bin/mything && echo "mything completed" > /home/username/.messages && chown username:groupname /home/username/.messages
Вот отчет обо всем, что я нашел до сих пор:
Это в настоящее время работает на меня, и я не видел проблем до сих пор:
ACTIVE=$(ck-list-sessions | awk -F' = ' '
function f(){if(A=="TRUE"){P=U"\t"D;gsub("'"'"'","",P);print P}}
$1=="\tunix-user"{U=$2}
$1=="\tx11-display"{D=$2}
$1=="\tactive"{A=$2}
END{f()} /^[^\t]/{f()}
')
USERID=${ACTIVE% *} # tab
USERNAME=$(getent passwd $USERID|cut -f1 -d':')
DISPLAY=${ACTIVE#* } # tab
DISPLAY="$DISPLAY" su $USERNAME -c "zenity --info --title='My Title' --text='My text. Notice the single quotes.'"
Но я тестировал уведомление - отправляют команду (упомянутый здесь), и это, казалось бы, еще более подходило бы для моей ситуации....
К сожалению, это имеет недостаток в KDE, который уведомления скрывают вскоре, и я не нашел способ отключить тот тайм-аут (-t 0, не работал). Для моего существующего примера использования я склонен любить диалоговое окно, которое должно быть отклонено нажатием кнопки. Так или иначе вот детали, уведомляют - отправьте:
Уведомление - отправляет, команда позволяет Вам отправлять настольные уведомления пользователю через демона уведомления из командной строки. Это полезно, чтобы сообщить настольному пользователю о событии или отобразить некоторую форму информации без того, чтобы стоять на пути. Необходимо установить следующий пакет:
$ sudo apt-get install libnotify-bin
В этом примере отправьте простое настольное уведомление от командной строки, войдите:
notify-send "rsnapshot done :)"
Однако в процессе поиска решений, я также нашел что-то, что я абсолютно люблю! Я буду удалять все вызовы в Zenity во всех моих сценариях и заменять их easybashgui.
http://sites.google.com/site/easybashgui/
EasyBashGUI является библиотекой функций Bash для *BSD и GNU/Linux, который имеет целью давать простые функции графического интерфейса пользователя с помощью yad, gtkdialog, kdialog, zenity, Xdialog, (c) диалоговое окно, whiptail или колотить builtins в зависимости от KDE или выполнения GNOME или нет, Yad/Gtkdialog/Xdialog установленный или не и, в конечном счете, выполнения X-сервера или нет.
Я также нашел Yad, который заменит Zenity для меня в будущем. easybashgui может использовать/называть Zenity, yad, gtkdialog, kdialog, Xdialog, (c) диалоговое окно, whiptail или колотить builtins. Таким образом, я буду постепенно сокращать Zenity и использовать yad в соответствующих случаях.
Отобразите графические диалоговые окна из сценариев оболочки или командной строки - Google Project Hosting http://code.google.com/p/yad/
Yad (еще одно диалоговое окно) является ветвлением Zenity со многими улучшениями, такими как пользовательские кнопки, дополнительные диалоговые окна, всплывающее меню в значке уведомления и т.д.
Было две главных причины сделать это ветвление. Первый должен удалить зависимости от библиотек устаревших, таких как libglade и холст гнома. И второй - что касается меня, Zenity похож на заброшенный проект. Его ChangeLog состоит из просто "версии удара к..." и "перевод, обновленный" в течение долгого времени, но многими интересными идеями, которые проигнорированы разработчиками/специалистами по обслуживанию, было в GNOME Bugzilla.
Как don_crissti упоминания, решения по этому unix.stackexchange.com являются, вероятно, соответствующими:
Откройте окно на удаленном X дисплеев (почему "Не может открыть дисплей")?
notify-send
наилучший вариант или Вы, думают, что одна из других опций лучше?
– MountainX-for-Monica
23.06.2013, 07:59
Моя система является человечностью 13.04. Я запустил скрипт, подобный Вашему, через anacrontab, и он работает. Попробуйте это..
Настройте свой crontab..
$ cat /path/crontabfile
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * /bin/bash /path/anacron-tst/s1.sh
АЛЬТЕРНАТИВА: Настройте свой anacrontab..
$ cat /etc/anacrontab
### original
.. ,, ..
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
### end-original
### my custom lines ..
SHELL=/bin/bash
HOME=/home/me
LOGNAME=me
1 2 me1 /bin/bash /path/anacron-tst/s1.sh
В Вашем сценарии..
$ cat /path/anacron-tst/s1.sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0
export XAUTHORITY=/home/me/.Xauthority
zenity --question --text "Backup time .. is HDD connected?"
if [ $? -ne 0 ]; then
echo "No confirmation .. quiting"
exit 1
else
echo "Will attempt backup now .."
fi
Это от человека 5 anacrontab..
.. lines can be of three kinds: job-description lines, environment assignments, or empty lines.
Environment assignment lines are of the form: VAR = VALUE
.. ,, ..
The assignment takes effect from the next line to the end of the file, or
to the next assignment of the same variable.
Это работает с crontab, установленный для корня. Обратите внимание на то, что я отредактировал сценарий для включения строки, "экспортируют XAUTHORITY =/home/me/.Xauthority". Этому нужно это для работы.