Схоже, ця помилка існує довгий час! Ось декілька посилань на помилки, які можуть бути вам корисними (і, можливо, ви хочете підписатись на / проголосувати, підказки, підказки ...):
Помилка Debian № 85123 ("sudo: SECURE_PATH все ще не можна переохопити") (з 2001 року!)
Здається, що помилка №20996 все ще присутня в цій версії sudo. Журнал змін говорить, що це може бути відмінено під час виконання, але я ще не дізнався, як це зробити.
Вони згадують про те, щоб помістити щось подібне у ваш файл sudoers:
Defaults secure_path="/bin:/usr/bin:/usr/local/bin"
але коли я роблю це в Ubuntu 8.10 принаймні, це дає мені цю помилку:
visudo: unknown defaults entry `secure_path' referenced near line 10
Помилка Ubuntu # 50797 ("sudo побудовано за допомогою - із безпечним контуром проблематично")
Що ще гірше, наскільки я можу сказати, неможливо дотримуватися secure_path у файлі sudoers. Отже, якщо, наприклад, ви хочете запропонувати своїм користувачам легкий доступ до чогось під / opt, ви повинні перекомпілювати sudo.
Так. Там потрібно бути спосіб , щоб перевизначити цю «особливість» без необхідності перекомпіляції. Нічого гіршого, ніж біготи безпеки, котрі говорять про те, що найкраще для вашого оточення, а потім не дають вам можливості вимкнути його.
Це справді дратує. Можливо, було б доцільно зберегти поточну поведінку за замовчуванням з міркувань безпеки, але має бути спосіб її переосмислення, крім рекомпіляції з вихідного коду! Багато людей потребують успадкування PATH. Цікаво, чому жоден технічний персонал не заглядає в це, що, здається, легко знайти прийнятне рішення.
Я працював навколо цього так:
mv /usr/bin/sudo /usr/bin/sudo.orig
тоді створіть файл / usr / bin / sudo, що містить таке:
#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"
то ваше звичайне судо працює так само, як і судо-незахищений шлях
Помилка Ubuntu # 192651 ("шлях sudo завжди скидається")
З огляду на те, що дублікат цієї помилки був спочатку поданий у липні 2006 року, мені не ясно, як довго працював неефективний env_keep. Незалежно від того, що заслуговує на те, щоб змусити користувачів використовувати такі трюки, як перераховані вище, неодмінно, що довідкові сторінки для судо та судорів повинні відображати той факт, що варіанти зміни PATH фактично зайві.
Змінення документації для відображення фактичного виконання не є дестабілізуючим і дуже корисним.
Помилка Ubuntu # 226595 ("неможливо зберегти / вказати PATH")
Мені потрібно мати змогу запускати судо з додатковими не std бінарними папками в PATH. Додавши мої вимоги до / etc / environment, я здивувався, коли отримав помилки щодо відсутніх команд під час запуску їх під sudo .....
Я намагався виправити це без успіху:
Використання параметра " sudo -E
" - не вийшло. Мій існуючий PATH все ще був скинутий через sudo
Зміна " Defaults env_reset
" на " Defaults !env_reset
" в / etc / sudoers - теж не вийшло (навіть у поєднанні з sudo -E)
Не коментувати env_reset
(наприклад, " #Defaults env_reset
") у / etc / sudoers - теж не вийшло.
Додавання ' Defaults env_keep += "PATH"
' до / etc / sudoers - теж не вийшло.
Зрозуміло, що - незважаючи на документацію на людину - sudo повністю жорстко кодується щодо PATH і не дозволяє будь-якої гнучкості щодо збереження PATH користувачів. Дуже дратує, оскільки я не можу запускати програмне забезпечення, яке не використовується за замовчуванням, під кореневими дозволами за допомогою sudo.