[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Как запустить команду с заданной переменной при использовании gksu?



On Sun, Nov 14, 2010 at 07:08:15PM +0000, James Brown wrote:
> ОС - Lenny AMD64
> Как запустить команду с заданной переменной при использовании gksu и
> возможно ли это?
[snip]
> Запускаю gksu -w -u skypeuser LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so
> skype

Так, начать с тем, что более сигурно подавать такие переменние через
команду "env".  "VAR=val cmd args" - это синтаксис шела; но когда
подаете команду, которую какая-нибудь другая команда (не шел) выполнит -
тогда наиболее сигурно подать "env VAR=val cmd args".  Так что:

gksu -w -u skypeuser env LD_PRELOAD=/usr/lib32/.... skype

Если этo сработает, то, значит, в Вашем примере gksu пыталось запустить
программу по имени "LD_PRELOAD=/usr/lib/..." и подать ей "skype" как
первый параметр.  Через env - все, что надо.

Если это не сработает, тогда есть еще кое-что.  В документации ld.so
(runtime loader, который вправду загружает программ в памяти) есть
что-то такое:

  LD_PRELOAD
    A whitespace-separated list of additional, user-specified, ELF
    shared  libraries  to  be loaded  before  all others.  This can be
    used to selectively override functions in other shared libraries.
    For setuid/setgid ELF binaries, only libraries in the standard
    search directories that are also setgid will be loaded.

Так что, если Вам хочется выполнять setuid программу (а если запускаете
что-то через gksu, то оно заведомо является setuid, хотя и индиректно),
тогда надо сделать и LD_PRELOAD библиотеку setuid.  Попробуйте что-то
вроде chmod u+s /usr/lib32/libv4l/v4l1compat.so, может, сработает.

Но прежде всего попробуйте запустить skype посредством env, как описано
выше; если сработает, не делайте ничего setuid.
    
Всего лучшего,
Петр

-- 
Peter Pentchev	roam@space.bg    roam@ringlet.net    roam@FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
If wishes were fishes, the antecedent of this conditional would be true.

Attachment: signature.asc
Description: Digital signature


Reply to: