проблемы с запуском chef-client под командой sudo vs su

Два сценария. Я устанавливаю MYSQL на узел с помощью шеф-клиента:

1) В первом сценарии я запускаю его как «sudo»:

sudo chef-client

[2/5/14 6:30:31 PM] xxxx : : xxx:  * execute[ldconfig] action run
================================================================================
Error executing action `run` on resource 'execute[ldconfig]'
================================================================================
[2/5/14 6:30:41 PM] xxxx : : xxx: when I run again "chef-client" then it works
[2/5/14 6:30:48 PM] xxxx : : xxx: I was running as: sudo chef-client
[2/5/14 6:31:15 PM] xxxx : : xxx: Errno::ENOENT
-------------
No such file or directory - ldconfig

2) Во втором сценарии воссоздание виртуальной машины выше из той же начальной точки завершается успешно без каких-либо ошибок:

sudo su - 
chef-client

Более поздний сценарий успешен, ошибок, связанных с ldconfig, нет.

Поэтому я сбит с толку, почему команда sudo для шеф-клиента не работает, тогда как у второй нет проблем?


person gextra    schedule 06.02.2014    source источник
comment
Все дело в окружающей среде. Это принципиально разные вещи.   -  person sethvargo    schedule 06.02.2014


Ответы (1)


Вероятно, это что-то в среде вашей оболочки. Со страницы руководства для su:

 -l      Simulate a full login.  The environment is discarded except for HOME, SHELL, PATH, TERM, and USER.  HOME and SHELL are modified as
         above.  USER is set to the target login.  PATH is set to ``/bin:/usr/bin''.  TERM is imported from your current environment.  The
         invoked shell is the target login's, and su will change directory to the target login's home directory.

 -       (no letter) The same as -l.

Запуск su - выбрасывает содержимое вашей среды, а sudo - нет. Скорее, он хранит что-то, что отбрасывает что-то о том, что пыталась сделать команда ldconfig.

person Tim Potter    schedule 06.02.2014