Есть ли возможность запустить скрипт от имени пользователя root при запуске и одновременно получить доступ к файлам в зашифрованном домашнем каталоге?

Мне известен /etc/rc.local который может выполнять сценарии от имени пользователя root, но поскольку пользователь не вошел в систему, я не могу получить доступ к файлам в домашней директории.

Я также знаю о файлах запуска * .desktop в ~/.config/autostart/ они могут получить доступ к домашнему каталогу, поскольку они выполняются после входа в систему, но не запускаются с правами root.

Я хочу автоматически смонтировать зашифрованный раздел LUKS, используя файл ключа, который находится в зашифрованном домашнем каталоге. Команды mount и cryptsetup требуют root.

Я предпочитаю не исключать эти команды из-за требования прав sudo, поэтому эта опция недоступна.

1 ответ1

1

Похоже, вы уже почти получили свой ответ:

  1. Придется подождать, пока пользователь войдет в систему, чтобы расшифровать свой дом
  2. Затем нужно запускать команды от имени пользователя root, при этом все еще требуя sudo

  • Я думаю, что вам нужно будет просто открыть терминал или окно после входа в систему с запросом привилегий sudo.

    Просто создайте файл .desktop в ~/.config/autostart который запускает команды / скрипт, начинающиеся с sudo , аналогично

    Exec=sh -c "sudo cryptsetup... && sudo mount..."
    

    Если обычный sudo не будет отображать запрос "ввести пароль", то gksu звучит как инструмент, который вы хотите использовать вместо sudo .

  • Или измените ваши sudo / sudoers так, чтобы они запускали только ваш конкретный файл скрипта без запроса пароля, только для вашего пользователя, что-то вроде этого (но смотрите man sudoers для страниц и страниц информации):

    myuser ALL=(root) NOPASSWD: /home/myuser/onlythis
    
  • Или создание модуля / плагина PAM для автоматического выполнения действий с паролем при входе в систему - еще одна более сложная идея)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .