Пользуйтесь совместно использованными библиотеками в/usr/local/lib

Вы возражали бы пробовать sudo-iu ircuser/usr/bin/irssi?

Кроме того, поскольку Patkos Csaba уже заявил проверку на env_reset, env_keep набор Значений по умолчанию в Вашем sudoers.

Из sudoers страницы справочника:

As a special case, if sudo's -i option (initial login) is specified,
sudoers will initialize the environment regardless of the value of
env_reset.  The DISPLAY, PATH and TERM variables remain unchanged;
HOME, MAIL, SHELL, USER, and LOGNAME are set based on the target user.
On Linux and AIX systems the contents of /etc/environment are also
included.  All other environment variables are removed.

Так sudo-i инициализирует среду, обходящую значения их.

Править: Я воспроизвел Вашу установку на поле Ubuntu, и даже sudo-u ircuser/usr/bin/irssi хорошо работает для меня.

От моего/etc/sudoers

<snipped>
Defaults    env_reset, log_output
<snipped>
testing LABUBU01=(ircuser) NOPASSWD: /usr/bin/irssi

Версии:

testing@LABUBU01:~$ sudo -V
Sudo version 1.8.3p1
pmplugin policy_plugin 5.6.0 (034)
pmplugin io_plugin 5.6.0 (034)
testing@LABUBU01:~$ uname -a
Linux LABUBU01 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 19:00:26 UTC 2011 i686 GNU/Linux


testing@LABUBU01:~$ ls -lap /home/
total 64
drwxr-xr-x 16 root     root     4096 2012-03-02 15:57 ./
drwxr-xr-x 22 root     root     4096 2011-12-08 15:48 ../
drwxr-xr-x  3 ircuser  ircuser  4096 2012-03-02 15:57 ircuser/

/ РЕДАКТИРОВАНИЕ

EDIT2:

Ваша ошибка:

** ОШИБКА **: не Мог создать/home/myuser / _ web/ircuser/.irssi прерывание каталога... Прерванный

состояния, это не может создать/home/myuser / _ web/ircuser/.irssi, который находится в Вашем доме, не в корневом каталоге ircuser./EDIT2

60
07.08.2015, 12:12
2 ответа

Для текущей сессии Вы можете

export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

или делать изменение постоянным можно добавить /usr/local/lib кому: /etc/ld.so.conf (или что-то это включает), и выполненный ldconfig как корень.

Если у Вас все еще есть проблемы, работая ldd [executable name] покажет Вам библиотеки, которые это пытается найти, и которые не могут быть найдены.

59
27.01.2020, 19:32
  • 1
    От man страница для ldd(1) "В обычном случае ldd вызывает типичного динамического компоновщика (см. ld.so(8)) с LD_TRACE_LOADED_OBJECTS набор переменной среды к 1, который заставляет компоновщика отображать зависимости библиотеки. Знайте, однако, это при некоторых обстоятельствах, некоторых версиях ldd может попытаться получить информацию о зависимостях путем прямого выполнения программы. Таким образом Вы никогда не должны использовать ldd на недоверяемом исполняемом файле, так как это может привести к выполнению произвольного кода. Более безопасная альтернатива, когда контакт с недоверяемыми исполняемыми файлами:..." –  SlySven 08.04.2016, 01:04
  • 2
    "... $ objdump -p /path/to/program | grep NEEDED" –  SlySven 08.04.2016, 01:05
  • 3
    , Хорошем один - я никогда не сталкивался с objdump прежде. –  Flup 08.04.2016, 01:32

Если Вы уже работали ldconfig после создания библиотеки продолжайте читать. В противном случае читайте о ldconfig сначала.

/usr/local/lib не могло бы быть в пути к библиотеке это использование ldconfig. Можно просто сделать это:

ldconfig /usr/local/lib

И материал должен быть добавлен к кэшу компоновщика, но, вероятно, лучше добавить путь правильно. Удостоверьтесь, что у Вас есть a /etc/ld.so.conf.d каталог. Раз так добавьте, файл (назовите это "usr-local.conf", или безотносительно), и поместите одну строку в него:

/usr/local/lib

Теперь выполненный ldconfig. Если у Вас нет ld.so.conf.d каталога, у Вас должен быть a /etc/ld.so.conf файл и Вы можете добавить что строка в конец его.

40
27.01.2020, 19:32
  • 1
    я добавил custom.conf файл к /etc/ld.so.conf.d затем sudoed ldconfig для принятия его и мой исполняемый файл может запуститься теперь. –  Stephane Rolland 13.03.2013, 16:17

Теги

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