Soru Jenkins hatalarını önlemek için en iyi yöntemler: sudo: no tty present ve nopass program belirtilmedi


Jenkins'den herhangi bir sudo komutu çalıştırırken şu hatayı alıyorum:

sudo: Tty mevcut değil ve herhangi bir program yok

Bunu ekleyerek bunu çözebileceğimi anlıyorum NOPASSWD benim giriş /etc/sudoers kullanıcıya izin verecek dosya jenkins şifre gerektirmeden komutları çalıştırmak için. Böyle bir giriş ekleyebilirim:

%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh

... ama bu aşağıdaki soruna yol açar: sudoers dosyasında tam yol belirtmek nasıl engellenir?

Böyle bir giriş ekleyebilirim:

%jenkins ALL=NOPASSWD: ALL

... ama bu kullanıcılara izin veriyor jenkins Tüm komutlar için şifre isteminden kaçınmak için biraz güvensiz gibi görünüyor. Seçeneklerin burada ne olduğunu merak ediyorum ve en iyi uygulama varsa göz önünde bulundurmalıyım.


5
2017-07-02 19:21


Menşei


Bana öyle geliyor ki, problem (ler), üzerinde çalıştığınız araçları gerçekten anlayamayacağından kaynaklanıyor. Şimdi bir adım geri atmak ve bazı unix temellerini öğrenmek ve sudo'nun nasıl çalıştığını biraz öğrenmek için bir fırsat olacaktır. - Iain


Cevaplar:


Bu seçeneği aradığınızı düşünüyorum man sudoers

   requiretty      If set, sudo will only run when the user is logged in to a real tty.  When this flag     
                   is set, sudo can only be run from a login session and not via other means such as        
                   cron(8) or cgi-bin scripts.  This flag is off by default.     

En güvenli ve en güvenli olanı için önerilerim şunlardır:

1) jenkins sudo'ya izin vermeyin. paket yapıyorsanız, içine bakın fakeroot. jenkins yazılım oluşturmak için root'a ihtiyaç duymaz.

2) eğer yap Köke sahip olmak için jenkins'a ihtiyaç var, ya sudo yetenekleri ile sudo yeteneklerini kısıtlamayı düşünün Cmnd seçenekler.

3) tek kullanımlık bir VM üzerinde jenkins çalıştırın. Birisi onu köklerse, yeniden yapılandırın ve güvenlik seçeneklerinizi yeniden değerlendirin. Ayrıca, intranet hizmeti olarak jenkins'i çalıştırmanızı öneririm, sadece LAN veya VPN üzerinden erişilebilir. kimlik doğrulamayı dahil etmeyi unutmayın!


5
2017-07-03 05:14





joker kullanıcısı olarak bir sudo'yu bir senaryonun parçası olarak çalıştırırsan, iki şeye ihtiyacın var.

  1. Komutun tam kopyası .. gibi / bin / chown www-data / var / www

  2. sudo -n kesin komut

-n bir NOPASSWD olup olmadığını bir bilgi istemek için söyleyecektir.

Bu jenkins çağrıları bir senaryoda sudo çalıştırmak için beni sabit


5
2018-05-20 16:33