У меня был скрипт bash, который вызывал sudo -i -u user /bin/bla/whatever. Это работало нормально до последнего обновления CentOS 5.8. Это соответствующая запись в файле sudoers:
Runas_Alias TEST = user1, user2
Defaults:test always_set_home
test ALL=(TEST) NOPASSWD: /bin/bash -c /bin/bla/whatever, /bin/bla/whatever
Если бы я использовал sudo -i, кажется, он вызвал команду
"/bin/bash -c /bin/bla/whatever"
(относительно безопасного журнала). Теперь, после обновления, он, кажется, звонит
"/bin/bash -c \/bin\/bla\/whatever"
и поэтому не разрешено. Я попытался изменить строку в файле sudoers на
test ALL=(TEST) NOPASSWD: /bin/bash -c /bin/bla/whatever, /bin/bla/whatever, /bin/bash -c \/bin\/bla\/whatever
но это недопустимый синтаксис, поэтому я попробовал:
test ALL=(TEST) NOPASSWD: /bin/bash -c /bin/bla/whatever, /bin/bla/whatever, /bin/bash -c \\/bin\\/bla\\/whatever
Это допустимый синтаксис, но он тоже не работает.
Если я использую sudo -H -u user /bin/bla/whatever, он работает нормально. Даже если я разрешаю /bin/bash в файле sudoers, но это позволит что угодно.....
Любые идеи?
Эрик