пытаясь понять LD_PRELOAD и SUID / SGID с помощью checkinstall или porg - PullRequest
0 голосов
/ 01 октября 2018

Я хочу использовать porg в моем LFS дистрибутиве.Это похоже на checkinstall , оно использует LD_PRELOAD.

1 .Если вы прочитали README :

CheckInstall в настоящее время не может отследить любые изменения файловой системы, сделанные статически связанными программами

Я думаю, что это относится ктакие команды, как mkdir, mv, ln и т. д. Поэтому у меня не должно быть никаких проблем с этим.Я прав?

2 .Тогда основная проблема:

ПРИМЕЧАНИЕ ПО ПРОГРАММАМ SUID / SGID: CheckInstall не может отслеживать их действия из-за некоторых ограничений в системе LD_PRELOAD, которую использует installwatch.Это хорошо по соображениям безопасности, но может привести к неожиданным результатам, когда процесс установки использует двоичные файлы SUID / SGID.

Что это значит?Мне все равно, если я потеряю некоторые файлы.Меня волнует, будут ли неожиданные результаты или я не смогу правильно установить пакет.

Кроме того, у скольких пакетов возникла эта проблема?

1 Ответ

0 голосов
/ 02 октября 2018
  1. В случае, если coreutils (mkdir, mv и т. Д.) В вашей системе статически связаны (т. Е. При выполнении file для них отчеты "статически связаны") porg не будетвозможность отслеживать их операции, и, следовательно, некоторые установленные файлы могут не отслеживаться.Статически связанные исполняемые файлы являются гражданами второго сорта в Linux, и LD_PRELOAD не поддерживает их.

  2. Исполняемые файлы setuid действительно очищают LD_PRELOAD перед использованием - они игнорируют все файлы с косой чертой в имени(чтобы можно было загружать только файлы из стандартных системных путей), а также требовать, чтобы в самой разделяемой библиотеке был установлен бит setuid.Так что в вашем случае вам нужно найти предустановленную библиотеку porg и установить для нее бит setuid (через chmod a+s libxyz.so).Кстати, возможно, имеет смысл попросить porg авторов сделать это изменение в своем дистрибутиве.Я не думаю, что это вызовет какие-либо проблемы в типичном пакете, так как установщикам обычно не нужно запускать программы setuid (например, mount, passwd, sudo).

...