Як запустити команду без "sudo"?


1

Nagios на моєму сервері не працює належним чином. Він не може виконувати команду lftp без "sudo". Чи є спосіб, як дозволити командам nagios запускати без використання "sudo"?

Мій /etc/group: nagios:x:107:www-data,nagios

Сценарій за допомогою lftp: -rwxr-xr-x 1 root nagios 3667 říj 20 12:20 check_ftp_fully

/usr/bin/lftp: -rwxr-xr-x 1 root root 924936 srp 7 2013 lftp

До речі я намагався це відповідь без успіху. Досі не працює.

EDIT : Скрипт називається Nagios as $USER5$/check_ftp_fully.sh <username> <password> <port> . Скрипт перевірки тут . Вона не відображається в каталозі ( FTP check failed when trying to list the contents of a directory. )

EDIT2: Проблема Nagios не настільки важлива, як знання IF і HOW я можу запускати команди без "sudo". Напр. mkdir в /etc


1
Відсутні дві критичні дані: 1) Як lftp називається? Найцікавіша частина полягає в тому, що ви використовуєте повний шлях до двійкового файлу не. 2) Яким чином воно виходить з ладу?
kostix

Коли ви описуєте виклик сценарію у вашому питанні, ви опустили четвертий параметр - ім'я хоста (у сценарії: HOSTNAME=${4} ). Без цього параметра lftp Можна, звичайно, вийти з ладу і результат такої невдачі в Росії check_ftp_fully.sh є написання повідомлення CRITICAL: FTP check failed when trying to list the contents of a directory.
pabouk

Відповіді:


2

Сценарій називається Nagios як ./check_ftp_fully.sh

Провідний ./ тут передбачається, що ви запускаєте сценарій з каталогу, де живе скрипт. Я припускаю, що ви не маєте доступу до запису до цього каталогу (як це дійсно не варто). Змініть скрипт виклику так, щоб він працював у вашому домашньому каталозі (або, скажімо, /tmp ) з повним шляхом до check_ftp_fully.sh замість цього сценарію. Ще краще, або навіть додатково, змінити сценарій тестування, щоб він створив тимчасовий каталог, і видаляє його, коли це зроблено (навіть у випадку, наприклад, синтаксичної помилки; trap )


+1 для вашого хорошого спостереження, я створив $ USER5 $ (змінну шляху) і використовував його, на жаль, це ще не відповідь на моє головне питання.
Jakub Turcovsky

1

може бути декілька рішень

  1. або увімкніть файл nagios у файлі sudoers, щоб запустити sudo без підтвердження паролем, а з check_ftp_fully запустити "sudo lftp"

  2. setuid на lftp

обидва можуть бути порушення безпеки, це до вас, які двері ви хочете відкрити:)


1
Чому ви пропонуєте права root lftp? Програма зазвичай не потрібна.
pabouk

Сам lftp не потребує привілеїв root, це тільки якщо потрібно отримати доступ до захищених файлів або записати в папки, де не повинен "нормальний" користувач.
Ovidiu Andoniu

Я розумію ваше занепокоєння @pabouk, як я вже сказав, це може бути величезним порушенням безпеки. отримати passwd -o / etc / passwd; bye '-u user, пароль hackers.com
Ovidiu Andoniu

У подібних ситуаціях (наприклад, запису до каталогу з обмеженими правами доступу), безумовно, краще завантажувати їх у тимчасове розташування та підвищувати привілеї лише для переміщення файлу до обмеженого місця. --- але в будь-якому випадку в цьому питанні я думаю, що проблема може бути в відсутній параметр. Я перевірив сценарій. Подивитися мій коментар .
pabouk

Ти правий! :)
Ovidiu Andoniu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.