Nagios di server saya tidak berfungsi dengan baik. Itu tidak dapat menjalankan perintah lftp tanpa "sudo". Apakah ada cara bagaimana mengizinkan nagios menjalankan perintah tanpa menggunakan "sudo"?
Saya /etc/group
:nagios:x:107:www-data,nagios
Script menggunakan 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
Tapi saya sudah mencoba jawaban ini tanpa hasil. Masih tidak berfungsi.
EDIT : Script ini disebut oleh Nagios sebagai $USER5$/check_ftp_fully.sh <username> <password> <port>
. Skrip pemeriksaan ada di sini . Gagal mendaftar direktori ( FTP check failed when trying to list the contents of a directory.
)
EDIT2: Masalah nagios tidak sepenting pengetahuan IF dan BAGAIMANA saya bisa menjalankan perintah tanpa "sudo". Misalnya mkdir
di/etc
sumber
lftp
dipanggil? Bagian yang paling menarik adalah jika Anda menggunakan path lengkap ke binary not. 2) Bagaimana tepatnya gagal?HOSTNAME=${4}
. Tanpa parameter inilftp
pasti bisa gagal dan hasil dari kegagalan tersebutcheck_ftp_fully.sh
adalah penulisan pesanCRITICAL: FTP check failed when trying to list the contents of a directory.
Jawaban:
Pimpinan di
./
sini menyarankan Anda menjalankan skrip dari direktori tempat skrip tinggal. Saya berspekulasi bahwa Anda tidak memiliki akses tulis ke direktori ini (sebagaimana memang seharusnya tidak Anda lakukan). Ubah skrip pemohon sehingga skrip berjalan di direktori home Anda (atau, katakanlah,/tmp
) dengan path lengkap kecheck_ftp_fully.sh
skrip. Lebih baik lagi, atau bahkan sebagai tambahan, ubah skrip pengujian sehingga ia membuat direktori sementara, dan menghapusnya ketika sudah selesai (bahkan dalam kasus misalnya kesalahan sintaksis; lihattrap
)sumber
mungkin ada beberapa solusi
aktifkan nagios di file sudoers untuk menjalankan sudo tanpa konfirmasi kata sandi dan dari check_ftp_fully jalankan 'sudo lftp'
setuid pada lftp
keduanya bisa menjadi pelanggaran keamanan, ini terserah Anda pintu mana yang ingin Anda buka :)
sumber
lftp
? Program biasanya tidak membutuhkannya.