3

Некоторые программы на linux, которые используют файлы конфигурации, хотят, чтобы я ввел свой пароль в виде простого текста в одном из их файлов конфигурации. Например, newsbeauter, программа rss reader хочет, чтобы я ввел пароль моей учетной записи Google в ~/.newsbeauter/config, если я хочу читать каналы Google Reader. Матт также хочет ввести пароль в текстовом файле, но дает возможность вводить его при каждом входе в систему.

Есть ли безопасный способ обойти пароль в таком файле конфигурации (например, для newsbeauter)? Я думал о запуске приложения от имени пользователя root, но это не так. Или как-то создавать и удалять файл каждый раз, когда я использую приложение.

Есть идеи?

3 ответа3

4

Настройка разрешения не защитит от злоумышленника, который имеет доступ к вашим дискам (украденный ноутбук).

Вы не можете защитить от злоумышленника, имеющего root в вашей работающей системе, но вы можете защитить себя от кражи диска или другого не слишком умного вредоносного программного обеспечения с помощью следующих двух методов:

  • Настройте небольшую зашифрованную файловую систему (например, используйте dm-crypt или truecrypt), затем замените ваши файлы конфигурации символическими ссылками, которые указывают на какое-то место в зашифрованном разделе. Это просто для развертывания, но подвергает вас риску, когда монтируется зашифрованная файловая система

    mount encrypted fs under /mnt/crypt
    cp ~/.application/config /mnt/crypt/app-config
    ln -s /mnt/crypt/app-config ~/.application/config
    unmount encrypted fs to lock config
    
  • Замените ваши файлы конфигурации именованными каналами (mkfifo). Это будет хорошо работать, только если приложение читает конфигурацию за один проход; после запуска приложение заблокирует чтение файла конфигурации, пока вы не запишите его в именованный канал. Затем вы можете сохранить зашифрованную версию файла в другом месте (используйте, например, gpg); при необходимости расшифруйте содержимое с помощью gpg и отправьте его на лету в трубу. Это немного безопаснее, так как вы должны вручную разрешать каждый доступ к файлу, но, возможно, менее удобно.

     # setup
     gpg -e -r my-address@domain.com <~/.application/config ~/.application/config.pgp
     mkfifo ~/.application/config
     # run application, application hangs waiting for config
     gpg -d <~/.application/config.pgp >~/.application/config
    
2

Запуск некритического программного обеспечения с правами root почти никогда не является хорошей идеей.

Вместо этого вам следует изменить разрешения этих файлов, чтобы их могли прочитать только вы (пользователь, запускающий эти программы). Например, чтобы удалить права на чтение, запись и выполнение для кого-либо, кроме вас, файла mine.conf , вы должны войти в свой аккаунт.

chmod og-rwx mine.conf
0

Или другой трюк - поместить файл конфигурации в каталог, но для этого тоже убрать разрешения на чтение, чтобы вы не могли видеть внутри, просто сделайте

chmod ar что угодно /

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

sudo ls что угодно /

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