Почему я получаю & ldquo; не удалось создать файл pid & hellip; Permission Denied & rdquo; ошибка?

Я выполнил инструкции, приведенные в 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, если вы можете использовать ваши дешифрованные данные, чтобы сделать резервную копию. Затем вы закроете папку и закроете терминал.

1
задан 10 August 2012 в 14:16

2 ответа

Общий подход: определите пользователя и группу процесса, пытающегося получить доступ к файлу. Это часто встречается в конфигурации программного обеспечения (например, webservers / mailservers / ...), но если программное обеспечение уже работает, используйте это:

ps aux 

Посмотрите на процесс, который вы хотите настроить права доступа для. Первый столбец сообщает вам, под каким именем пользователя он работает.

groups <username>

Это сообщит вам, к каким группам принадлежит пользователь.

Измените владельца или группу файла в соответствии с сервисом.

Примечание 1: Поскольку вопрос указывает, что файл находится в / var / run / Я принимаю только одному процессу нужен доступ, если это не так, вы не должны изменять владельца или группу, но вы можете подумать о добавлении пользователя процесса в группу или создании новой группы для этого файла / папки.

Примечание 2: Смешные вещи могут случиться с аперсоном, который представляет собой систему безопасности: он может препятствовать процессам писать в файлы и папки, на которых они имеют (на уровне файловой системы) все необходимые права. С помощью aa-status вы можете узнать, активно ли определенное правило для вашей службы.

1
ответ дан 25 May 2018 в 07:43

То, что я сделал, просто добавляет создание папки непосредственно перед запуском-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 $?
}
1
ответ дан 25 May 2018 в 07:43

Другие вопросы по тегам:

Похожие вопросы: