Вы возражали бы пробовать 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
Для текущей сессии Вы можете
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
или делать изменение постоянным можно добавить /usr/local/lib
кому: /etc/ld.so.conf
(или что-то это включает), и выполненный ldconfig
как корень.
Если у Вас все еще есть проблемы, работая ldd [executable name]
покажет Вам библиотеки, которые это пытается найти, и которые не могут быть найдены.
Если Вы уже работали 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
файл и Вы можете добавить что строка в конец его.
/etc/ld.so.conf.d
затем sudoed ldconfig для принятия его и мой исполняемый файл может запуститься теперь.
– Stephane Rolland
13.03.2013, 16:17
man
страница дляldd(1)
"В обычном случае ldd вызывает типичного динамического компоновщика (см.ld.so(8)
) сLD_TRACE_LOADED_OBJECTS
набор переменной среды к1
, который заставляет компоновщика отображать зависимости библиотеки. Знайте, однако, это при некоторых обстоятельствах, некоторых версияхldd
может попытаться получить информацию о зависимостях путем прямого выполнения программы. Таким образом Вы никогда не должны использоватьldd
на недоверяемом исполняемом файле, так как это может привести к выполнению произвольного кода. Более безопасная альтернатива, когда контакт с недоверяемыми исполняемыми файлами:..." – SlySven 08.04.2016, 01:04$ objdump -p /path/to/program | grep NEEDED
" – SlySven 08.04.2016, 01:05