Я выполнил инструкции, приведенные в https://help.ubuntu.com/community/EncryptedPrivateDirectory#Using%20in%20conjunction%20with%20Auto-login в разделе «Как удалить зашифрованную установку частного каталога».
Примечания:
Вы должны войти в правильную сессию пользователя, я имею в виду тот, который вы не хотите зашифровывать. BACKUP все данные в вашей частной папке (/ home / your-user-name / Private обычно). Удалить ecryptfs (шаг 5) является необязательным, с предыдущими шагами это нормально.t иметь доступ к данным в вашей частной папке или имена файлов зашифрованы, а затем выполните следующие действия:
Примечание. Эта процедура является альтернативой, которую я нашел сам (с помощью друга), потому что все я
$ sudo ecryptfs-recover-private $ [sudo] пароль для «user-name» $ INFO: поиск зашифрованных частных каталогов (это может занять некоторое время) ... INFO: Найдено [/home/.ecryptfs/"user-name"/.Private]. Попробуйте восстановить этот каталог? [Y / n]: Y INFO: Нашел вашу завернутую фразу ... Знаете ли вы свой ЛОГИННАЯ кодовая фраза? [Y / n]: Y INFO: Введите свою кодовую фразу LOGIN ... Парольная фраза: * LOGIN PASSPHRASE «имя-пользователя» Введенный auth tok с sig [xxxxxxxxxxxxxxx] в пользовательский ключ sesiong INFO: Успех! только для чтения в [/tmp/ecryptfs.yyyyyyyy]. $ sudo nautilus / t mp / ecryptfs.yyyyyyyy /Последняя команда откроет папку /tmp/ecryptfs.yyyyyyyyy, если вы можете использовать ваши дешифрованные данные, чтобы сделать резервную копию. Затем вы закроете папку и закроете терминал.
Общий подход: определите пользователя и группу процесса, пытающегося получить доступ к файлу. Это часто встречается в конфигурации программного обеспечения (например, webservers / mailservers / ...), но если программное обеспечение уже работает, используйте это:
ps aux
Посмотрите на процесс, который вы хотите настроить права доступа для. Первый столбец сообщает вам, под каким именем пользователя он работает.
groups <username>
Это сообщит вам, к каким группам принадлежит пользователь.
Измените владельца или группу файла в соответствии с сервисом.
Примечание 1: Поскольку вопрос указывает, что файл находится в / var / run / Я принимаю только одному процессу нужен доступ, если это не так, вы не должны изменять владельца или группу, но вы можете подумать о добавлении пользователя процесса в группу или создании новой группы для этого файла / папки.
Примечание 2: Смешные вещи могут случиться с аперсоном, который представляет собой систему безопасности: он может препятствовать процессам писать в файлы и папки, на которых они имеют (на уровне файловой системы) все необходимые права. С помощью aa-status вы можете узнать, активно ли определенное правило для вашей службы.
То, что я сделал, просто добавляет создание папки непосредственно перед запуском-stop-deamon. Это работает, потому что сценарий обычно выполняется как root во время запуска. Он просто создает папку в / var / run и немедленно меняет владельца, поэтому PID можно записать.
В приведенном ниже примере я проверяю наличие подпапки / var / run, где i поместите PID как текущий пользователь, в этом случае пользователь «pi» (так как я на малине).
Также проверьте эту ссылку, так как это было очень познавательно для меня: скрипт Python для запуска в качестве сервиса , однако он не охватывал проблему, обсуждаемую здесь.
Пример части моего сценария оболочки:
# The process ID of the script when it runs is stored here:
PIDFILE=/var/run/power/$DAEMON_NAME.pid
do_start () {
log_daemon_msg "Starting system $DAEMON_NAME daemon"
if [ ! -d /var/run/power ]; then
mkdir /var/run/power/
chown pi:pi /var/run/power/
fi
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chdir $DIR --startas $DAEMON -- $DAEMON_OPTS
log_end_msg $?
}